Build and Deploy #37
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: Build and Deploy | |
on: | |
# Push includes PR merge | |
push: | |
branches: | |
- main | |
- staging | |
- develop | |
- ci-gh-workflows | |
paths: | |
# Workflow is triggered only if src changes | |
- backend/** | |
- frontend/** | |
# Allow manual trigger | |
workflow_dispatch: | |
jobs: | |
backend-test: | |
uses: hotosm/gh-workflows/.github/workflows/[email protected] | |
with: | |
image_name: ghcr.io/${{ github.repository }}/backend | |
pre_command: docker compose up -d traefik | |
compose_service: tm-backend | |
build_target: prod | |
compose_command: | | |
pip install flake8 | |
flake8 manage.py backend tests migrations | |
pip install 'black==23.12.1' | |
black --check manage.py backend tests migrations | |
tag_override: ci-${{ github.ref_name }} | |
coverage: true | |
secrets: inherit | |
backend-build: | |
uses: hotosm/gh-workflows/.github/workflows/[email protected] | |
needs: | |
- backend-test | |
with: | |
context: . | |
build_target: prod | |
image_name: ghcr.io/${{ github.repository }}/backend | |
dockerfile: Dockerfile | |
scan_image: false | |
secrets: inherit | |
frontend-test: | |
uses: naxa-developers/tasking-manager/.github/workflows/frontend-test.yml@ci-gh-workflows | |
secrets: inherit | |
with: | |
node-version: 16.x | |
context: ./frontend | |
cache-key-file: ./frontend/yarn.lock | |
package-manager: yarn | |
test_frontend_build: false | |
test_frontend_command: | | |
CI=true yarn test -w 1 | |
CI=true GENERATE_SOURCEMAP=false yarn build | |
frontend-build: | |
uses: naxa-developers/tasking-manager/.github/workflows/frontend-build.yml@ci-gh-workflows | |
secrets: inherit | |
needs: | |
- frontend-test | |
with: | |
node-version: 16.x | |
context: ./frontend | |
cache-key-file: ./frontend/yarn.lock | |
package-manager: yarn | |
build-dist-folder-path: ./frontend/build | |
frontend-deploy: | |
runs-on: ubuntu-latest | |
needs: | |
- frontend-build | |
name: Deploy Frontend Static Files | |
steps: | |
- name: Download build artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ needs.frontend-build.outputs.artifact-name }} | |
path: ./build | |
- name: Debug check files | |
run: | | |
ls -alh | |
ls -alh build | |
deploy_to_vm: | |
name: Deploy to VM | |
needs: | |
- frontend-build | |
- backend-build | |
uses: naxa-developers/tasking-manager/.github/workflows/remote_deploy_compose.yml@ci-gh-workflows | |
with: | |
docker_compose_file: docker-compose.yml | |
environment: ${{ github.ref_name }} | |
example_env_file_path: example.env | |
env_file_path: tasking-manager.env | |
secrets: inherit |