Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

in addition github actions are used for the CI

for the modules

...

Code Block
name: Automated CI testing
# This workflow run automatically for every commit on github it checks the syntax and launch the tests.
# | grep . | uniq -c filters out empty lines and then groups consecutive lines together with the number of occurrences
on:
  pull_request:
  workflow_dispatch:
    inputs:
      comment:
        description: Just a simple comment to know the purpose of the manual build
        required: false

jobs:
  run_test:
    runs-on: ubuntu-latest
    services:
      mssql:
        image: mcr.microsoft.com/mssql/server:2017-latest
        env:
          ACCEPT_EULA: Y
          SA_PASSWORD: GitHub999
        ports:
          - 1433:1433
        # needed because the mssql container does not provide a health check
        options: --health-interval=10s --health-timeout=3s --health-start-period=10s --health-retries=10 --health-cmd="/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SA_PASSWORD} -Q 'SELECT 1' || exit 1"

    steps:
      - name: Set up Python 3.8
        uses: actions/setup-python@v2
        with:
          python-version: 3.8
      - name: install linux packages
        run: |
          git clone --depth 1 --branch develop https://github.com/openimis/database_ms_sqlserver.git  ./sql
          cd sql/ && bash concatenate_files.sh && cd ..
          curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
          curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
          sudo apt-get update
          sudo ACCEPT_EULA=Y apt-get install -y  mssql-tools build-essential dialog apt-utils unixodbc-dev -y
          python -m pip install --upgrade pip
      - name: pull openimis backend
        run: |
          rm ./openimis -rf
          git clone --depth 1 --branch develop https://github.com/openimis/openimis-be_py.git ./openimis
      - name: copy current branch
        uses: actions/checkout@v2
        with:
          path: './current-module'
      - name: Update the configuration
        working-directory: ./openimis
        run: |
          export MODULE_NAME="$(echo $GITHUB_REPOSITORY | sed 's#^openimis/openimis-be-\(.*\)_py$#\1#')"
          echo "the local module called $MODULE_NAME will be injected in openIMIS .json"
          jq --arg name "$MODULE_NAME" 'if [.modules[].name  ==  ($name)]| max then (.modules[]  | select(.name == ($name)) | .pip)|="../current-module" else .modules |= .+ [{name:($name), pip:"../current-module"}] end' openimis.json
          echo $(jq --arg name "$MODULE_NAME" 'if [.modules[].name  ==  ($name)]| max then (.modules[]  | select(.name == ($name)) | .pip)|="../current-module" else .modules |= .+ [{name:($name), pip:"../current-module"}] end' openimis.json)  > openimis.json
      - name: Install openIMIS Python dependencies
        working-directory: ./openimis
        run: |
          pip install -r requirements.txt
          python modules-requirements.py openimis.json > modules-requirements.txt
          cat modules-requirements.txt
          pip install -r modules-requirements.txt
      - name: Environment info
        working-directory: ./openimis
        run: |
          pip list
      - name: Initialize DB
        run: |
          /opt/mssql-tools/bin/sqlcmd -S localhost,1433 -U SA -P $SA_PASSWORD -Q 'DROP DATABASE IF EXISTS imis'
          /opt/mssql-tools/bin/sqlcmd -S localhost,1433 -U SA -P $SA_PASSWORD -Q 'CREATE DATABASE imis'
          /opt/mssql-tools/bin/sqlcmd -S localhost,1433 -U SA -P $SA_PASSWORD -d imis -i sql/output/fullDemoDatabase.sql | grep . | uniq -c
        env:
          SA_PASSWORD: GitHub999
          ACCEPT_EULA: Y

#      - name: Check formatting with black
#        run: |
#          black --check .

      - name: Django tests
        working-directory: ./openimis/openIMIS
        run: |
          export MODULE_NAME="$(echo $GITHUB_REPOSITORY | sed 's#^openimis/openimis-be-\(.*\)_py$#\1#')"
          python -V
          ls -l
          python manage.py migrate
          python init_test_db.py | grep . | uniq -c
          python manage.py test --keepdb $MODULE_NAME
        env:
          SECRET_KEY: secret
          DEBUG: true
          #DJANGO_SETTINGS_MODULE: hat.settings
          DB_HOST: localhost
          DB_PORT: 1433
          DB_NAME: imis
          DB_USER: sa
          DB_PASSWORD: GitHub999
          #DEV_SERVER: true
          SITE_ROOT: api
          REMOTE_USER_AUTHENTICATION: True

for the assembly

View file
nameassembly-test.yml

...