name: TrickOps # This workflow is triggered on pushes to the repository. on: push: paths-ignore: - 'docs/**' - '.github/workflows/**' - '!.github/workflows/trickops.yml' pull_request: defaults: run: shell: bash jobs: trickops-tests-ubuntu: name: Unit Tests Ubuntu:20.04 runs-on: ubuntu-20.04 container: ubuntu:20.04 steps: - uses: actions/checkout@master - name: install dependencies # Note that perl is for trick-gte which TrickOps runs and qt and everything after it is for koviz run: | export DEBIAN_FRONTEND=noninteractive && apt-get update && apt-get install -y git python3 python3-venv perl perl-modules-5.30 qtbase5-dev wget unzip g++ make flex bison - name: create virtual environment run: | cd share/trick/trickops/ python3 -m venv .venv && source .venv/bin/activate && pip3 install -r requirements.txt - name: get and build koviz run: | cd /tmp/ && wget -q https://github.com/nasa/koviz/archive/refs/heads/master.zip && unzip master.zip cd /tmp/koviz-master/ && qmake && make - name: run unit and doc tests run: | cd share/trick/trickops/tests/ source ../.venv/bin/activate export PATH="/tmp/koviz-master/bin:${PATH}" ./run_tests.py - uses: actions/upload-artifact@master if: ${{ always() }} with: name: doctests path: | share/trick/trickops/tests/*_doctest_log.txt /tmp/log.* trickops-tests-centos8: name: Unit Tests CentOS:latest runs-on: ubuntu-20.04 container: centos:latest steps: - uses: actions/checkout@master - name: install dependencies # Note that perl is for trick-gte which TrickOps runs and qt and everything after it is for koviz run: | sed -i -e "s|mirrorlist=|#mirrorlist=|g" -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-Linux-* dnf install -y git python3-devel which perl perl-Digest-MD5 qt5-qtbase-devel bison clang flex make gcc gcc-c++ wget - name: create virtual environment run: | cd share/trick/trickops/ python3 -m venv .venv && source .venv/bin/activate && pip3 install -r requirements.txt - name: get and build koviz run: | cd /tmp/ && wget -q https://github.com/nasa/koviz/archive/refs/heads/master.zip && unzip master.zip cd /tmp/koviz-master/ && qmake-qt5 && make - name: run unit and doc tests run: | cd share/trick/trickops/tests/ source ../.venv/bin/activate export PATH="/tmp/koviz-master/bin:${PATH}" ./run_tests.py - uses: actions/upload-artifact@master if: ${{ always() }} with: name: doctests path: | share/trick/trickops/tests/*_doctest_log.txt /tmp/log.* # TODO: ExampleWorkflow.py is not included here because it needs a built Trick # to function correctly and I don't want to duplicate the Trick build testing # here to provide testing of what is essentially an example provided for # documentation purposes. If we could leverage artifacts from a previous # stage and/or stable containers where Trick is already pre-built, we should # consider adding ExampleWorfklow.py to testing in this file. -Jordan 4/2021