split docker composes and create prod and local versions #24
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: ci | |
on: | |
push: | |
branches: [main] | |
env: | |
REGISTRY: ghcr.io | |
IMAGE_NAME: ${{ github.repository }} | |
jobs: | |
ci: | |
runs-on: ubuntu-22.04 | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
- uses: actions/checkout@v2 | |
- name: 'COMMIT STAGE: (compile, unit test, analysis, build installers in under 5 minutes)' | |
run: | | |
echo Building docker image | |
docker-compose build | |
docker-compose -f docker-compose.yaml -f docker-compose.test.yaml up --abort-on-container-exit | |
- name: Clean up | |
if: always() | |
run: docker-compose down | |
- name: 'COMMIT STAGE: Log in to the Container registry' | |
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: 'COMMIT STAGE: Extract metadata for UI image' | |
id: meta-ui | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
tags: type=raw,value=ui-{{branch}}-{{sha}} | |
- name: 'COMMIT STAGE: Build and push UI image' | |
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 | |
with: | |
context: "{{defaultContext}}:ui/react-app" | |
push: true | |
tags: ${{ steps.meta-ui.outputs.tags }} | |
- name: 'COMMIT STAGE: Extract metadata for API image' | |
id: meta-api | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
tags: type=raw,value=api-{{branch}}-{{sha}} | |
- name: 'COMMIT STAGE: Build and push API image' | |
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 | |
with: | |
context: "{{defaultContext}}:api/flask_api" | |
push: true | |
tags: ${{ steps.meta-api.outputs.tags }} | |
- name: 'Artifact/release candidate with a unique id' | |
run: echo 'This is where I will publish my package (on github?)' | |
- name: 'Acceptance testing in prod-like envrionment' | |
run: echo 'This is where the acceptance tests will run' | |
- name: 'Production' | |
run: echo 'This is where the application will be deployed' | |