WIP: New frontend #1385
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 | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
- reopened | |
defaults: | |
run: | |
shell: bash -l {0} | |
env: | |
CACHE_NUMBER: 1 | |
jobs: | |
unit-test-frontend: | |
name: Frontend linting / unit tests | |
# Defines the type of runner the job runs on | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout to the repository | |
uses: actions/checkout@v3 | |
- name: Set up NodeJS environment | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '14' | |
# Consider this as an add on to optimize the execution of actions | |
- name: Cache node modules | |
id: cache-npm | |
uses: actions/cache@v3 | |
env: | |
cache-name: cache-node-modules | |
with: | |
# npm cache files are stored in `~/.npm` on Linux/macOS | |
path: ~/.npm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
- name: Install package dependencies | |
run: npm install | |
working-directory: ./frontend2 | |
- name: Check linting and formatting | |
# Custom script for checking the linting and formatting being in place | |
run: npm run lint | |
working-directory: ./frontend2 | |
# Run test cases and this could ensure minimum coverage as well if set | |
- name: Execute test cases | |
run: npm run test | |
working-directory: ./frontend2 | |
lint: | |
name: Linter (pre-commit) | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@v3.1.0 | |
- name: Cache conda | |
uses: actions/cache@v3.0.11 | |
with: | |
path: ~/conda_pkgs_dir | |
key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ hashFiles('environment-dev.yml') }} | |
- name: Setup miniconda | |
uses: conda-incubator/setup-miniconda@v2.2.0 | |
with: | |
environment-file: environment-dev.yml | |
use-only-tar-bz2: true | |
- name: Run linter | |
run: | | |
pre-commit install | |
pre-commit run -a | |
unit-test-backend: | |
name: Backend unit tests | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@v3.1.0 | |
- name: Cache conda | |
uses: actions/cache@v3.0.11 | |
with: | |
path: ~/conda_pkgs_dir | |
key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ hashFiles('environment-dev.yml') }} | |
- name: Setup miniconda | |
uses: conda-incubator/setup-miniconda@v2.2.0 | |
with: | |
environment-file: environment-dev.yml | |
use-only-tar-bz2: true | |
- name: Initialize migrations | |
run: ./manage.py makemigrations | |
working-directory: ./backend | |
- name: Run tests | |
run: find * -type f -name "test*.py" | sed "s/\.py$//g" | sed "s/\//./g" | xargs coverage run --branch --source='.' ./manage.py test -v=2 | |
working-directory: ./backend | |
- name: Report coverage | |
run: coverage report | |
working-directory: ./backend |