mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
142 lines
4.2 KiB
YAML
142 lines
4.2 KiB
YAML
## Run the Taskwarrior tests, using stable rust to build TaskChampion.
|
|
name: tests
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
coverage:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Install apt packages
|
|
run: sudo apt-get install -y build-essential cmake git uuid-dev faketime locales python3 curl gcovr ninja-build
|
|
|
|
- name: Check out this repository
|
|
uses: actions/checkout@v4.1.6
|
|
|
|
- name: Configure project
|
|
run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS=--coverage
|
|
|
|
- name: Build project
|
|
run: cmake --build build --target test_runner --target task_executable
|
|
|
|
- name: Test project
|
|
run: ctest --test-dir build -j 8 --output-on-failure
|
|
|
|
- name: Generate a code coverage report
|
|
uses: threeal/gcovr-action@v1.0.0
|
|
with:
|
|
coveralls-out: coverage.coveralls.json
|
|
excludes: |
|
|
build
|
|
|
|
- name: Sent to Coveralls
|
|
uses: coverallsapp/github-action@v2
|
|
with:
|
|
file: coverage.coveralls.json
|
|
|
|
# MacOS tests do not run in Docker, and use the actions-rs Rust installaction
|
|
tests-macos-12:
|
|
needs: coverage
|
|
name: tests (Mac OS 12.latest)
|
|
if: false # see #3242
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Cache cargo registry
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cargo/registry
|
|
key: ${{ runner.os }}-stable-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
- name: Cache cargo build
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: target
|
|
key: ${{ runner.os }}-stable-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: "stable"
|
|
override: true
|
|
|
|
- name: Test MacOS
|
|
run: bash test/scripts/test_macos.sh
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
tests-macos-13:
|
|
needs: coverage
|
|
name: tests (Mac OS 13.latest)
|
|
if: false # see #3242
|
|
runs-on: macos-13
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Cache cargo registry
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cargo/registry
|
|
key: ${{ runner.os }}-stable-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
- name: Cache cargo build
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: target
|
|
key: ${{ runner.os }}-stable-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: "stable"
|
|
override: true
|
|
|
|
- name: Test MacOS
|
|
run: bash test/scripts/test_macos.sh
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
tests:
|
|
needs: coverage
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- name: "Fedora 40"
|
|
runner: ubuntu-latest
|
|
dockerfile: fedora40
|
|
- name: "Fedora 39"
|
|
runner: ubuntu-latest
|
|
dockerfile: fedora39
|
|
- name: "Debian Testing"
|
|
runner: ubuntu-latest
|
|
dockerfile: debiantesting
|
|
- name: "Ubuntu 20.04"
|
|
runner: ubuntu-latest
|
|
dockerfile: ubuntu2004
|
|
- name: "Ubuntu 22.04"
|
|
runner: ubuntu-latest
|
|
dockerfile: ubuntu2204
|
|
- name: "OpenSUSE Tumbleweed (Rolling)"
|
|
runner: ubuntu-latest
|
|
dockerfile: opensuse
|
|
- name: "Archlinux Base (Rolling)"
|
|
runner: ubuntu-latest
|
|
dockerfile: arch
|
|
runs-on: ${{ matrix.runner }}
|
|
continue-on-error: ${{ matrix.continue-on-error == true }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Build ${{ matrix.name }}
|
|
env:
|
|
DOCKER_REGISTRY: docker.pkg.github.com
|
|
DOCKER_CACHE_IMAGE: docker.pkg.github.com/${{ github.repository }}/taskwarrior_cache
|
|
GITHUB_USER: ${{ github.actor }}
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
CONTAINER: ${{ matrix.dockerfile }}
|
|
run: docker compose build test-${{ env.CONTAINER }}
|
|
|
|
- name: Test ${{ matrix.name }}
|
|
run: docker compose run test-${{ env.CONTAINER }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
CONTAINER: ${{ matrix.dockerfile }}
|