Skip to content

Build and Deploy

Build and Deploy #45

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: naxa-developers/tasking-manager/.github/workflows/test_compose.yml@ci-gh-workflows
with:
image_name: ghcr.io/${{ github.repository }}/backend
pre_command: docker compose --file docker-compose.yml up -d
compose_service: tm-backend
build_target: prod
compose_command: |
# pip install flake8
# flake8 manage.py backend migrations
# pip install 'black==23.12.1'
# black --check manage.py backend migrations
curl -i http://localhost:5000/api/v2/
tag_override: ci-${{ github.ref_name }}
# coverage: true
example_env_file_path: example.env
env_file_path: tasking-manager.env
secrets: inherit
# backend-build:
# uses: hotosm/gh-workflows/.github/workflows/[email protected]
# 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_command: |
# CI=true yarn test -w 1
# # test_frontend_build: false
# # build_test_frontend_command: |
# # CI=true GENERATE_SOURCEMAP=false yarn build
# frontend-build:
# uses: naxa-developers/tasking-manager/.github/workflows/frontend-build.yml@ci-gh-workflows
# secrets: inherit
# 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-test
# - 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
# backend_deploy_to_vm:
# name: Deploy Backend to VM
# needs:
# - backend-test
# - 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