From f65547ee7e5194df7dfa5a6dabeac7bc1c28c287 Mon Sep 17 00:00:00 2001 From: Nicola Tarocco Date: Sun, 27 Feb 2022 14:27:43 +0100 Subject: [PATCH] add GitHub Actions tests --- .github/workflows/tests.yml | 96 +++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 00000000..4ec6bba3 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,96 @@ +# This module is part of CARA. Please see the repository at +# https://gitlab.cern.ch/cara/cara for details of the license and terms of use. +name: CI + +on: + push: + branches: + - master + - 'feature/*' + pull_request: + branches: + - master + - 'feature/*' + workflow_dispatch: + inputs: + reason: + description: 'Reason' + required: false + default: 'Manual trigger' + +jobs: + test-install: + runs-on: ubuntu-latest + env: + PROJECT_ROOT: ./ + PROJECT_NAME: cara + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + lfs: true + + - name: Create LFS file list + run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id + + - name: Restore LFS cache + uses: actions/cache@v2 + id: lfs-cache + with: + path: .git/lfs + key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}-v1 + + - name: Git LFS Pull + run: git lfs pull + + - name: Set up Python 3.9 + uses: actions/setup-python@v2 + with: + python-version: 3.9 + + - name: Install dependencies + run: | + python -m pip install ${PROJECT_ROOT}[test] + + - name: Run tests + run: | + mkdir -p ~/not-the-source-dir && cd ~/not-the-source-dir + python -m pytest --pyargs ${PROJECT_NAME} + test-dev: + runs-on: ubuntu-20.04 + env: + PROJECT_ROOT: ./ + PROJECT_NAME: cara + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + lfs: true + + - name: Create LFS file list + run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id + + - name: Restore LFS cache + uses: actions/cache@v2 + id: lfs-cache + with: + path: .git/lfs + key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}-v1 + + - name: Git LFS Pull + run: git lfs pull + + - name: Set up Python 3.9 + uses: actions/setup-python@v2 + with: + python-version: 3.9 + + - name: Install dependencies + run: | + python -m pip install -e ${PROJECT_ROOT}[test] + python -m pip install pytest-cov + + - name: Run tests + run: | + cd ${PROJECT_ROOT} + python -m pytest ./${PROJECT_NAME} --cov=${PROJECT_NAME} --junitxml=report.xml