name: Hal Deployment run-name: Deploy to prod on: push: branches: - main jobs: build: runs-on: rust container: options: --dns 172.16.255.254 env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} steps: - name: Checkout uses: actions/checkout@v3 - name: Build (Release) run: cargo build --release --color=always - name: Archive artifact uses: actions/upload-artifact@v3 with: name: hal path: target/release/hal deploy: runs-on: rust container: options: --dns 172.16.255.254 steps: - name: Checkout uses: actions/checkout@v3 - name: Download artifact uses: actions/download-artifact@v3 with: name: hal - name: Pre-seed known_hosts run: mkdir -pv ~/.ssh && ssh-keyscan -t rsa $BOT_SERVER_HOSTNAME >> ~/.ssh/known_hosts env: BOT_SERVER_HOSTNAME: ${{ vars['SERVER_HOSTNAME'] }} - uses: cschleiden/replace-tokens@v1.2 with: files: config/production.hal.json env: BOT_NICKNAME: ${{ vars.BOT_NICKNAME }} BOT_IDENTIFIER: hal LOG_CHANNEL_ID: ${{ vars.LOG_CHANNEL_ID }} POSTGRES_HOST: ${{ vars.POSTGRES_HOST }} POSTGRES_USER: ${{ vars.POSTGRES_USER }} POSTGRES_DATABASE_NAME: ${{ vars.POSTGRES_DATABASE_NAME] }} POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} WEATHER_API_KEY: ${{ secrets.WEATHER_API_KEY }} DOGPICS_API_KEY: ${{ secrets.DOGPICS_API_KEY }} CATPICS_API_KEY: ${{ secrets.CATPICS_API_KEY }} - name: Seed SSH key for deploy run: echo "${{ secrets.DEPLOY_KEY }}" | tr -d '\r' > ~/.ssh/id_rsa && chmod 0600 ~/.ssh/id_rsa - name: Deploy run: bash cicd/deploy.sh hal