mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 07:51:13 -05:00
Deploy from CI when tests pass
This commit is contained in:
50
.github/workflows/deploy.yml
vendored
Normal file
50
.github/workflows/deploy.yml
vendored
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
name: Deploy to prototype environment
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_run:
|
||||||
|
workflows: [ Run checks ]
|
||||||
|
types:
|
||||||
|
- completed
|
||||||
|
# branches: [ main ]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Install container dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update \
|
||||||
|
&& sudo apt-get install -y --no-install-recommends \
|
||||||
|
libcurl4-openssl-dev
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Set up Python 3.9
|
||||||
|
uses: actions/setup-python@v3
|
||||||
|
with:
|
||||||
|
python-version: "3.9"
|
||||||
|
- name: Install application dependencies
|
||||||
|
run: make bootstrap
|
||||||
|
- name: Install Cloud Foundry CLI
|
||||||
|
run: |
|
||||||
|
curl -v -L -o cf-cli_amd64.deb 'https://packages.cloudfoundry.org/stable?release=debian64&version=v7&source=github'
|
||||||
|
sudo dpkg -i cf-cli_amd64.deb
|
||||||
|
- name: Deploy to gsa-10x-prototyping api
|
||||||
|
run: make cf-deploy
|
||||||
|
with:
|
||||||
|
CF_ORG: gsa-10x-prototyping
|
||||||
|
CF_SPACE: 10x-notifications
|
||||||
|
CF_APP: notifications-api
|
||||||
|
DANGEROUS_SALT: {{secrets.DANGEROUS_SALT}}
|
||||||
|
SECRET_KEY: {{secrets.SECRET_KEY}}
|
||||||
|
AWS_ACCESS_KEY_ID: {{secrets.AWS_ACCESS_KEY_ID}}
|
||||||
|
AWS_SECRET_ACCESS_KEY: {{secrets.AWS_SECRET_ACCESS_KEY}}
|
||||||
|
|
||||||
|
bail:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
|
||||||
|
steps:
|
||||||
|
- run: echo 'Checks failed, preventing deploy'
|
||||||
8
Makefile
8
Makefile
@@ -133,14 +133,8 @@ cf-deploy: ## Deploys the app to Cloud Foundry
|
|||||||
# cancel any existing deploys to ensure we can apply manifest (if a deploy is in progress you'll see ScaleDisabledDuringDeployment)
|
# cancel any existing deploys to ensure we can apply manifest (if a deploy is in progress you'll see ScaleDisabledDuringDeployment)
|
||||||
cf cancel-deployment ${CF_APP} || true
|
cf cancel-deployment ${CF_APP} || true
|
||||||
|
|
||||||
# generate manifest (including secrets) and write it to CF_MANIFEST_PATH (in /tmp/)
|
|
||||||
make -s CF_APP=${CF_APP} generate-manifest > ${CF_MANIFEST_PATH}
|
|
||||||
|
|
||||||
# fails after 15 mins if deploy doesn't work
|
# fails after 15 mins if deploy doesn't work
|
||||||
# reads manifest from CF_MANIFEST_PATH
|
CF_STARTUP_TIMEOUT=15 cf push ${CF_APP} --strategy=rolling
|
||||||
CF_STARTUP_TIMEOUT=15 cf push ${CF_APP} --strategy=rolling -f ${CF_MANIFEST_PATH}
|
|
||||||
# delete old manifest file
|
|
||||||
rm ${CF_MANIFEST_PATH}
|
|
||||||
|
|
||||||
.PHONY: cf-deploy-api-db-migration
|
.PHONY: cf-deploy-api-db-migration
|
||||||
cf-deploy-api-db-migration:
|
cf-deploy-api-db-migration:
|
||||||
|
|||||||
Reference in New Issue
Block a user