Skip to content

Add group_work_allowed boolean to CourseInstance to avoid expensive l… #908

Add group_work_allowed boolean to CourseInstance to avoid expensive l…

Add group_work_allowed boolean to CourseInstance to avoid expensive l… #908

Workflow file for this run

name: tests
on:
# trigger when pushed to any branch (for development)
push:
# trigger when a pull request is made to master
pull_request:
branches:
- master
jobs:
docker-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
id: imgcache
with:
path: .docker-img.tar
key: v2-${{ hashFiles('.github/workflows/Dockerfile', 'requirements_testing.txt', 'requirements.txt') }}
# we stop here if the docker image was found in a cache
- uses: actions/cache@v2
with:
path: .docker-cache
key: v2-${{ hashFiles('.github/workflows/Dockerfile', 'requirements_testing.txt', 'requirements.txt') }}
if: steps.imgcache.outputs.cache-hit != 'true'
- uses: docker/setup-buildx-action@v1.3.0
if: steps.imgcache.outputs.cache-hit != 'true'
- run: docker buildx build -t testimg --output type=docker,dest=.docker-img.tar --cache-to type=local,dest=.docker-cache2,mode=max --cache-from type=local,src=.docker-cache -f .github/workflows/Dockerfile .
if: steps.imgcache.outputs.cache-hit != 'true'
- run: rm -rf .docker-cache | true
if: steps.imgcache.outputs.cache-hit != 'true'
- run: mv .docker-cache2 .docker-cache
if: steps.imgcache.outputs.cache-hit != 'true'
unit-tests:
runs-on: ubuntu-latest
needs: docker-build
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: .docker-img.tar
key: v2-${{ hashFiles('.github/workflows/Dockerfile', 'requirements_testing.txt', 'requirements.txt') }}
- run: docker load -i .docker-img.tar
- run: docker run -v ${{ github.workspace }}:${{ github.workspace }} -w ${{ github.workspace }} testimg bash -c 'python3 manage.py compilemessages && python3 manage.py test'
selenium-tests:
runs-on: ubuntu-latest
needs: docker-build
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: .docker-img.tar
key: v2-${{ hashFiles('.github/workflows/Dockerfile', 'requirements_testing.txt', 'requirements.txt') }}
- run: docker load -i .docker-img.tar
- run: docker run -v ${{ github.workspace }}:${{ github.workspace }} -w ${{ github.workspace }} testimg bash -c 'python3 manage.py compilemessages && selenium_test/run_servers_and_tests.sh'
playwright-tests:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt -r requirements_testing.txt
- name: Ensure browsers are installed
run: python -m playwright install --with-deps
- name: Run tests
run: pytest e2e_tests --tracing=retain-on-failure
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-traces
path: test_results/