Skip to content

Feature/network status #240

Feature/network status

Feature/network status #240

Workflow file for this run

name: Backend & Frontend Test
on:
push:
# This should disable running the workflow on tags, according to the
# on.<push|pull_request>.<branches|tags> GitHub Actions docs.
# cheers @ https://github.com/psycopg/psycopg/blob/5681de9c42f916d5b2436ad9c6f47b79c8aeaa12/.github/workflows/tests.yml#L4-L8
branches:
- "*"
pull_request:
branches: [main]
schedule:
- cron: "0 0 * * *"
workflow_call:
workflow_dispatch: # manual
jobs:
secret-scan:
name: gitleaks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: gitleaks/gitleaks-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITLEAKS_LICENSE: ${{ secrets.GITLEAKS_LICENSE}} # Only required for Organizations, not personal accounts.
build-docker:
uses: dbadrian/zest/.github/workflows/build-docker.yaml@main
test-backend:
runs-on: ubuntu-latest
needs: [build-docker]
env:
DJANGO_SETTINGS_MODULE: zest.settings.dev
DJANGO_SECRET_KEY: "JASIDJ*@ioda89dY2hdaiophd80a23p06i%8-4ods3"
DJANGO_ALLOWED_HOSTS: localhost,0.0.0.0,127.0.0.1
DJANGO_AUTH_MODE: jwt
TESTFLAGS: "--with-coverage --cover-xml --cover-erase"
SQL_ENGINE: django.db.backends.postgresql
SQL_DATABASE: zest
SQL_USER: zest
SQL_PASSWORD: zest
SQL_HOST: db
SQL_PORT: 5432
UID: 1001
GID: 121
REDIS_ADDRESS: redis://cache:6379/1
steps:
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v3
- name: "📂 download docker artifacts"
uses: actions/download-artifact@v4
with:
name: docker
path: /tmp
- name: "📦 load tag"
run: |
docker load --input /tmp/docker.tar
docker image ls -a
# - name: Initialize backend
# run: |
# task backend-init-ci
- name: Test
run: task backend-test
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: backend/coverage.xml
flags: backend
token: ${{ secrets.CODECOV_TOKEN }}
prepare-frontend-environment:
runs-on: ubuntu-latest
needs: [build-docker]
defaults:
run:
working-directory: frontend
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
with:
channel: stable
# flutter-version: 3.27.0
cache: true
- name: "???"
run: |
echo $(pwd)
- name: Prepare environment.
run: flutter pub get
- uses: actions/cache@v4
name: Build Runner Cache
id: flutter_build_runner_cache
with:
path: ./frontend/lib/
key: flutter_build_runner_cache_${{ runner.os }}_${{ github.sha }}
- name: Build Runner
if: steps.flutter_build_runner_cache.outputs.cache-hit != 'true'
run: flutter pub run build_runner build --delete-conflicting-outputs
qa-frontend:
runs-on: ubuntu-latest
needs: [prepare-frontend-environment]
env:
DJANGO_SETTINGS_MODULE: zest.settings.dev
DJANGO_SECRET_KEY: "JASIDJ*@ioda89dY2hdaiophd80a23p06i%8-4ods3"
DJANGO_ALLOWED_HOSTS: localhost,0.0.0.0,127.0.0.1
DJANGO_AUTH_MODE: jwt
TESTFLAGS: "--with-coverage --cover-xml --cover-erase"
SQL_ENGINE: django.db.backends.postgresql
SQL_DATABASE: zest
SQL_USER: zest
SQL_PASSWORD: zest
SQL_HOST: db
SQL_PORT: 5432
UID: 1001
GID: 121
REDIS_ADDRESS: redis://cache:6379/1
defaults:
run:
working-directory: frontend
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
with:
channel: stable
# flutter-version: 3.27.0
cache: true
- run: flutter --version
- run: flutter --disable-analytics
- name: Prepare environment.
run: flutter pub get
- uses: actions/cache@v4
name: Build Runner Cache
id: flutter_build_runner_cache
with:
path: ./frontend/lib/
key: flutter_build_runner_cache_${{ runner.os }}_${{ github.sha }}
- name: Build Runner
if: steps.flutter_build_runner_cache.outputs.cache-hit != 'true'
run: flutter pub run build_runner build --delete-conflicting-outputs
- name: Check formatting
run: dart format --set-exit-if-changed .
- name: Static code analysis (no-fatal-infos)
run: flutter analyze . --no-fatal-infos --no-fatal-warnings
test-frontend:
runs-on: ubuntu-latest
needs: [prepare-frontend-environment]
env:
DJANGO_SETTINGS_MODULE: zest.settings.dev
DJANGO_SECRET_KEY: "JASIDJ*@ioda89dY2hdaiophd80a23p06i%8-4ods3"
DJANGO_ALLOWED_HOSTS: localhost,0.0.0.0,127.0.0.1
DJANGO_AUTH_MODE: jwt
TESTFLAGS: "--with-coverage --cover-xml --cover-erase"
SQL_ENGINE: django.db.backends.postgresql
SQL_DATABASE: zest
SQL_USER: zest
SQL_PASSWORD: zest
SQL_HOST: db
SQL_PORT: 5432
UID: 1001
GID: 121
REDIS_ADDRESS: redis://cache:6379/1
defaults:
run:
working-directory: frontend
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
with:
channel: stable
# flutter-version: 3.27.0
cache: true
- run: flutter --version
- run: flutter --disable-analytics
- name: Install Ubuntu Dependencies
run: sudo apt-get install --no-install-recommends -y lcov sqlite3 libsqlite3-dev libsecret-1-0 libsecret-1-dev
- name: Prepare environment.
run: flutter pub get
- uses: actions/cache@v4
name: Build Runner Cache
id: flutter_build_runner_cache
with:
path: ./frontend/lib/
key: flutter_build_runner_cache_${{ runner.os }}_${{ github.sha }}
- name: Build Runner
if: steps.flutter_build_runner_cache.outputs.cache-hit != 'true'
run: flutter pub run build_runner build --delete-conflicting-outputs
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: "📂 download docker artifacts"
uses: actions/download-artifact@v4
with:
name: docker
path: /tmp
- name: "📦 load tag"
run: |
docker load --input /tmp/docker.tar
docker image ls -a
- name: Initialize backend
run: |
task backend-init-ci
- name: Tests
run: |
task docker-start
flutter test --coverage
- name: Generate Coverage
run: |
lcov --ignore-errors unused --remove coverage/lcov.info 'lib/*/*.freezed.dart' 'lib/*.g.dart' 'lib/*/*.part.dart' 'lib/generated/*.dart' 'lib/generated/*/*.dart' -o coverage/lcov.info
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: coverage/lcov.info
flags: frontend
token: ${{ secrets.CODECOV_TOKEN }}