name: Deploy on: push: branches: - main jobs: run_pull: runs-on: ubuntu-latest steps: - name: Set up SSH run: | install -m 600 -D /dev/null ~/.ssh/id_ed25519 echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 # This should be redundant but seems to do the trick. ssh-keyscan -H ${{ vars.SSH_HOST }} > ~/.ssh/known_hosts - name: Connect, pull, build and deploy run: ssh ${{ secrets.SSH_USER }}@${{ vars.SSH_HOST }} "cd ${{ secrets.WORK_DIR }} && git checkout ${{ vars.MAIN_BRANCH }} && git pull && docker compose up -d --build && exit" - name: Clean up run: rm -rf ~/.ssh permissions: contents: read pull-requests: write