adjust yml for backend prod deploy to trigger action upon push to sta… #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy backend to production | |
on: | |
push: | |
branches: | |
- staging | |
paths-ignore: | |
- "web/**" | |
- "CHANGELOG.md" | |
# TODO: revert back; only for testing! | |
# release: | |
# types: [released] | |
concurrency: | |
# If this workflow is already running, cancel it to avoid a scenario | |
# where the older run finishes *after* the newer run and overwrites | |
# the deployment with an older version of the app. | |
group: ${{ github.workflow }} | |
cancel-in-progress: true | |
jobs: | |
reset-release-branch: | |
name: Update release branch | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # fetch history for all branches and tags | |
token: ${{ secrets.GH_TOKEN }} # use PAT with permissions to push to master | |
ref: release | |
- name: Perform reset | |
run: | | |
git reset --hard ${{ github.ref }} | |
git push --force origin release | |
production-deploy: | |
name: Deploy to Heroku | |
runs-on: ubuntu-22.04 | |
needs: reset-release-branch | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # fetch history for all branches and tags | |
ref: release | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
- name: Install Heroku CLI | |
run: curl https://cli-assets.heroku.com/install.sh | sh | |
- name: Install builds plugin | |
run: heroku plugins:install heroku-builds | |
- name: Build app into tarball | |
run: | | |
pip install build | |
python -m build --sdist | |
- name: Create Heroku Build | |
run: heroku builds:create -a dandi-api --source-tar dist/*.tar.gz | |
env: | |
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} | |
HEROKU_EMAIL: ${{ secrets.HEROKU_EMAIL }} |