Skip to content

Run Docker tests (beta) #26

Run Docker tests (beta)

Run Docker tests (beta) #26

# Workflow for running the test suite including long-running tests using Docker
name: Run Docker tests (beta)
on:
workflow_run:
workflows: [Run Docker tests]
types:
- requested
workflow_dispatch:
jobs:
build:
name: Test suite
runs-on: ubuntu-latest
env:
TAR: /bin/tar
DOCKER_BUILDKIT: 1
DOCKER_CLI_EXPERIMENTAL: enabled
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v4
- name: Fetch origin
run: |
git fetch origin
- name: Check that branch exists
id: check-branch
run: |
if git show-ref --quiet refs/remotes/origin/beta; then
echo "run=true" > $GITHUB_OUTPUT
else
echo "run=false" > $GITHUB_OUTPUT
fi
- uses: actions/checkout@v4
if: ${{ steps.check-branch.outputs.run == 'true' }}
with:
ref: beta
- uses: docker/setup-buildx-action@v3
if: ${{ steps.check-branch.outputs.run == 'true' }}
with:
install: true
- uses: r-lib/actions/setup-tinytex@v2
if: ${{ steps.check-branch.outputs.run == 'true' }}
- uses: r-lib/actions/setup-pandoc@v2
if: ${{ steps.check-branch.outputs.run == 'true' }}
- uses: liskin/gh-pipx@v1
if: ${{ steps.check-branch.outputs.run == 'true' }}
with:
packages: >-
poetry
- uses: mamba-org/setup-micromamba@v2
if: ${{ steps.check-branch.outputs.run == 'true' }}
with:
environment-file: environment.yml
create-args: >-
python=3.9
init-shell: >-
bash
cache-environment: true
cache-environment-key: requirements-${{ hashFiles('environment.yml') }}
- name: Install dependencies
if: ${{ steps.check-branch.outputs.run == 'true' }}
run: |
micromamba activate otter-grader
poetry install --with dev,test --all-extras
- name: Install ottr
if: ${{ steps.check-branch.outputs.run == 'true' }}
run: |
micromamba run -n otter-grader Rscript -e 'install.packages("ottr", dependencies=TRUE, repos="https://cran.r-project.org/")'
- name: Maximize build space
if: ${{ steps.check-branch.outputs.run == 'true' }}
run: |
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
df -h
- name: Run tests
if: ${{ steps.check-branch.outputs.run == 'true' }}
run: |
micromamba activate otter-grader
make testcov PYTESTOPTS="-vv" && coverage lcov -i
- name: Coveralls
if: ${{ steps.check-branch.outputs.run == 'true' }}
uses: coverallsapp/github-action@v2