@@ -51,17 +51,19 @@ jobs:
5151
5252 - name : Build docker images
5353 run : |
54- docker build -t delphi_web -f repos/delphi/operations/dev/docker/web/Dockerfile .
5554 docker build -t delphi_database -f repos/delphi/operations/dev/docker/database/Dockerfile .
5655 docker build -t delphi_python -f repos/delphi/operations/dev/docker/python/Dockerfile .
57- docker build -t delphi_web_epidata -f ./repos/delphi/delphi-epidata/dev/docker/web/epidata/Dockerfile .
5856 docker build -t delphi_database_epidata -f ./repos/delphi/delphi-epidata/dev/docker/database/epidata/Dockerfile .
57+ docker build -t delphi_web_python -f repos/delphi/delphi-epidata/dev/docker/python/Dockerfile .
58+ cd ./repos/delphi/delphi-epidata
59+ docker build -t delphi_web_epidata -f ./devops/Dockerfile .
60+ cd ../../../
5961
6062 - name : Start services
6163 run : |
6264 docker network create --driver bridge delphi-net
6365 docker run --rm -d -p 13306:3306 --network delphi-net --name delphi_database_epidata delphi_database_epidata
64- docker run --rm -d -p 10080:80 --network delphi-net --name delphi_web_epidata delphi_web_epidata
66+ docker run --rm -d -p 10080:80 --env "SQLALCHEMY_DATABASE_URI=mysql+mysqldb://user:pass@delphi_database_epidata:3306/epidata" --env "FLASK_SECRET=abc" --env "FLASK_PREFIX=/epidata" -- network delphi-net --name delphi_web_epidata delphi_web_epidata
6567 docker ps
6668
6769 - run : |
@@ -71,13 +73,67 @@ jobs:
7173 sleep 10s
7274 - name : Run Unit Tests
7375 run : |
74- docker run --rm --network delphi-net delphi_python python3 -m undefx.py3tester.py3tester --use-exit-code repos/delphi/delphi-epidata/tests
76+ docker run --rm --network delphi-net --env "SQLALCHEMY_DATABASE_URI=mysql+mysqldb://user:pass@delphi_database_epidata:3306/epidata" --env "FLASK_SECRET=abc" delphi_web_python python -m pytest --import-mode importlib repos/delphi/delphi-epidata/tests
7577
7678 - name : Run Integration Tests
7779 run : |
78- docker run --rm --network delphi-net delphi_python python3 -m undefx.py3tester.py3tester --use-exit-code repos/delphi/delphi-epidata/integrations
80+ docker run --rm --network delphi-net delphi_web_python python -m pytest --import-mode importlib repos/delphi/delphi-epidata/integrations
7981
8082 - name : Clean Up
8183 run : |
8284 docker stop delphi_database_epidata delphi_web_epidata
83- docker network remove delphi-net
85+ docker network remove delphi-net
86+
87+ image :
88+ # only on main and dev branch
89+ if : startsWith(github.ref, 'refs/heads/main') || github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/sgratzl/flaskx'
90+ runs-on : ubuntu-latest
91+ steps :
92+ - name : Check out code
93+ uses : actions/checkout@v2
94+ - name : Login to GitHub Container Registry
95+ uses : docker/login-action@v1
96+ with :
97+ registry : ghcr.io
98+ username : cmu-delphi-deploy-machine
99+ password : ${{ secrets.CMU_DELPHI_DEPLOY_MACHINE_PAT }}
100+ - name : Build Image
101+ env :
102+ DEVOPS_DOCKER_FILE : ./devops/Dockerfile
103+ run : |
104+ docker build -t repo --file ${DEVOPS_DOCKER_FILE} .
105+ - name : Resolve Tag
106+ id : tagname
107+ run : |
108+ baseRef="${GITHUB_REF#*/}"
109+ imageTag="${baseRef#*/}"
110+ case "${baseRef}" in
111+ main)
112+ imageTag="latest"
113+ ;;
114+ *)
115+ imageTag="${baseRef//\//_}" # replace `/` with `_` in branch name
116+ ;;
117+ esac
118+ echo "::set-output name=tag::$imageTag"
119+ echo "::set-output name=repo::ghcr.io/${{ github.repository }}"
120+ - name : Push Dev Tag
121+ run : |
122+ docker tag repo ${{ steps.tagname.outputs.repo }}:${{ steps.tagname.outputs.tag }}
123+ docker push ${{ steps.tagname.outputs.repo }}:${{ steps.tagname.outputs.tag }}
124+ # - name: Extract version
125+ # if: startsWith(github.ref, 'refs/heads/main')
126+ # id: extract_version
127+ # run: node -pe "'::set-output name=version::' + require('./package.json').version"
128+ - name : Trigger Webhook
129+ run : |
130+ # trigger a webhook update
131+ curl -H "Authorization: Bearer ${{ secrets.DELPHI_DEPLOY_WEBHOOK_TOKEN }}" \
132+ -X POST ${{ secrets.DELPHI_DEPLOY_WEBHOOK_URL }} \
133+ -H "Content-Type: application/x-www-form-urlencoded" \
134+ -d "repository=${{ steps.tagname.outputs.repo }}&tag=${{ steps.tagname.outputs.tag }}"
135+ # - name: Push Version Tag Tag
136+ # if: startsWith(github.ref, 'refs/heads/main')
137+ # run: |
138+ # docker tag repo ${{ steps.tagname.outputs.repo }}:v${{ steps.extract_version.outputs.version }}
139+ # docker push ${{ steps.tagname.outputs.repo }}:v${{ steps.extract_version.outputs.version }}
0 commit comments