Include IVR transcriber #1644
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, pull_request] | |
jobs: | |
test: | |
name: Test | |
env: | |
python-version: '3.9.x' | |
postgis-version: '3.1' | |
redis-version: '5.0.6' | |
node-version: '10' | |
elastic-version: '7.10.1' | |
rpindexer-version: '7.2.0' | |
mailroom-version: '7.2.6' | |
DJANGO_SETTINGS_MODULE: temba.settings_ci | |
strategy: | |
matrix: | |
pg-version: ['12', '13'] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v1 | |
- name: Install PostgreSQL and PostGIS | |
uses: nyaruka/[email protected] | |
with: | |
postgresql version: ${{ matrix.pg-version }} | |
postgis version: ${{ env.postgis-version }} | |
postgresql db: temba | |
postgresql user: temba | |
postgresql password: temba | |
postgresql arguments: '--jit=off' | |
- name: Install Linux packages | |
run: | | |
sudo apt update | |
sudo apt install -y --no-install-recommends libgdal-dev gettext | |
- name: Install Python | |
uses: actions/setup-python@v1 | |
with: | |
python-version: ${{ env.python-version }} | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
virtualenvs-in-project: true | |
- name: Install Redis | |
uses: zhulik/[email protected] | |
with: | |
redis version: ${{ env.redis-version }} | |
- name: Install ElasticSearch | |
uses: nyaruka/elasticsearch-action@master | |
with: | |
elastic version: ${{ env.elastic-version }} | |
- name: Install Node | |
uses: actions/setup-node@v1 | |
with: | |
node-version: ${{ env.node-version }} | |
- name: Initialize environment | |
run: | | |
poetry install | |
npm install | |
sudo npm install -g less | |
ln -s ${{ github.workspace }}/temba/settings.py.dev ${{ github.workspace }}/temba/settings.py | |
poetry run python manage.py migrate | |
# fetch and extract rp-indexer | |
wget https://github.com/nyaruka/rp-indexer/releases/download/v${{ env.rpindexer-version }}/rp-indexer_${{ env.rpindexer-version }}_linux_amd64.tar.gz | |
tar -xvf rp-indexer_${{ env.rpindexer-version }}_linux_amd64.tar.gz rp-indexer | |
# fetch, extract and start mailroom | |
wget https://github.com/rapidpro/mailroom/releases/download/v${{ env.mailroom-version }}/mailroom_${{ env.mailroom-version }}_linux_amd64.tar.gz | |
tar -xvf mailroom_${{ env.mailroom-version }}_linux_amd64.tar.gz mailroom | |
./mailroom -db=postgres://temba:temba@localhost:5432/temba?sslmode=disable -redis=redis://localhost:6379/10 -log-level=info > mailroom.log & | |
- name: Run pre-test checks | |
run: | | |
# test that everything is well formatted, no missing migrations etc | |
poetry run python code_check.py --debug | |
# check we can collect and compress all static files | |
poetry run python manage.py collectstatic --noinput --verbosity=0 | |
poetry run python manage.py compress --extension=".haml" --settings=temba.settings_compress | |
- name: Run tests | |
run: | | |
poetry run coverage run manage.py test --keepdb --noinput --verbosity=2 | |
poetry run coverage report -i | |
poetry run coverage report -i --rcfile .coveragerc_todo | |
poetry run coverage xml | |
- name: Mailroom log | |
if: failure() | |
run: cat mailroom.log | |
- name: Upload coverage | |
if: success() | |
uses: codecov/codecov-action@v1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true |