name: tests on: [push, pull_request] jobs: tests: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - _defaults: # see Dockerfile for variable defaults - TASK_VERSION: v2.4.4 - TASK_VERSION: v2.5.1 - TASK_VERSION: v2.5.3 - TASK_VERSION: v2.6.0 - TASK_VERSION: develop - VIM_VERSION: v7.4.1546 - VIM_VERSION: v8.0.0027 - VIM_VERSION: v8.1.0519 - VIM_VERSION: v8.2.3491 - VIMWIKI_VERSION: dev - PYTHON_VERSION: 3.6 - PYTHON_VERSION: 3.7 - PYTHON_VERSION: 3.8 - PYTHON_VERSION: 3.9 - PYTHON_VERSION: 3.10 continue-on-error: ${{ matrix.continue-on-error == true }} steps: - uses: actions/checkout@v2 - name: Prepare docker image run: | set -ex -o pipefail shopt -s lastpipe git ls-remote https://github.com/GothenburgBitFactory/taskwarrior.git heads/"$TASK_VERSION" | read -r TASK_DEVEL_SHA _ || : ( echo ALPINE_VERSION="$ALPINE_VERSION" echo PYTHON_VERSION="$PYTHON_VERSION" echo TASK_VERSION="$TASK_VERSION" ${TASK_DEVEL_SHA:+TASK_DEVEL_SHA="$TASK_DEVEL_SHA"} echo VIM_VERSION="$VIM_VERSION" echo VIMWIKI_VERSION="$VIMWIKI_VERSION" cat Dockerfile ) | sha256sum | read -r tag _ docker login "$DOCKER_REGISTRY" -u "$GITHUB_USER" -p "$GITHUB_TOKEN" || : docker pull "$DOCKER_CACHE_IMAGE":"$tag" || : DOCKER_BUILDKIT=1 docker build \ --build-arg BUILDKIT_INLINE_CACHE=1 \ --cache-from "$DOCKER_CACHE_IMAGE":"$tag" \ ${ALPINE_VERSION:+--build-arg ALPINE_VERSION="$ALPINE_VERSION"} \ ${PYTHON_VERSION:+--build-arg PYTHON_VERSION="$PYTHON_VERSION"} \ ${TASK_VERSION:+--build-arg TASK_VERSION="$TASK_VERSION"} \ ${VIM_VERSION:+--build-arg VIM_VERSION="$VIM_VERSION"} \ ${VIMWIKI_VERSION:+--build-arg VIMWIKI_VERSION="$VIMWIKI_VERSION"} \ -t taskwiki_tests \ . docker tag taskwiki_tests "$DOCKER_CACHE_IMAGE":"$tag" docker push "$DOCKER_CACHE_IMAGE":"$tag" || : env: ALPINE_VERSION: ${{ matrix.ALPINE_VERSION }} PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }} TASK_VERSION: ${{ matrix.TASK_VERSION }} VIM_VERSION: ${{ matrix.VIM_VERSION }} VIMWIKI_VERSION: ${{ matrix.VIMWIKI_VERSION }} DOCKER_REGISTRY: docker.pkg.github.com DOCKER_CACHE_IMAGE: docker.pkg.github.com/${{ github.repository }}/taskwiki_tests GITHUB_USER: ${{ github.actor }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Test run: make test PYTEST_FLAGS="-n8" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} COVERALLS_PARALLEL: true COVERALLS_SERVICE_NAME: github coveralls-finished: needs: tests runs-on: ubuntu-latest steps: - name: Finished uses: coverallsapp/github-action@1.1.3 with: github-token: ${{ secrets.GITHUB_TOKEN }} parallel-finished: true