name: Badgey 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: badgey path: target/release/badgey deploy: runs-on: rust container: options: --dns 172.16.255.254 env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} steps: - name: Checkout uses: actions/checkout@v3 - name: Download artifact uses: actions/download-artifact@v3 with: name: badgey - name: Pre-seed known_hosts run: mkdir -pv ~/.ssh && ssh-keyscan -t rsa ${{ vars.BADGEY_SERVER_HOSTNAME }} >> ~/.ssh/known_hosts - uses: cschleiden/replace-tokens@v1.2 with: files: config/production.badgey.json env: BOT_NICKNAME: ${{ vars.BADGEY_BOT_NICKNAME }} 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 ${{ vars.BADGEY_SERVER_HOSTNAME }}