CI Linux #4424
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://help.github.com/en/articles/workflow-syntax-for-github-actions | |
name: CI Linux | |
on: | |
push: | |
branches: | |
- "**" | |
paths-ignore: | |
- ".github/workflows/cache_*.yml" | |
- "docker/dev/**" | |
pull_request: | |
branches: | |
- "**" | |
paths-ignore: | |
- ".github/workflows/cache_*.yml" | |
- "docker/dev/**" | |
schedule: | |
# Cron syntax: [minute hour day_of_the_month month day_of_the_week] | |
- cron: "0 2 * * 0,3" # Run every Sunday and Wednesday at 02:00 | |
workflow_dispatch: | |
jobs: | |
coverage: | |
if: github.event_name != 'workflow_dispatch' | |
name: coverage | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# For code coverage report to Codecov | |
- os: ubuntu-jammy | |
build_type: Debug | |
codecov: ON | |
check_format: ON | |
build_dartpy: ON | |
enable_simd: ON | |
env: | |
# Hosted on: https://hub.docker.com/repository/docker/jslee02/dart-dev | |
DART_DEV_IMAGE: jslee02/dart-dev | |
DOCKER_TAG: ${{ matrix.os }}-v6.15 | |
PLATFORM: linux/amd64 | |
COMPILER: gcc | |
BUILD_TYPE: ${{ matrix.build_type }} | |
BUILD_DARTPY: "${{ matrix.build_dartpy }}" | |
CODECOV: ${{ matrix.codecov }} | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
CHECK_FORMAT: ${{ matrix.check_format }} | |
ENABLE_SIMD: ${{ matrix.enable_simd }} | |
DART_USE_SYSTEM_IMGUI: OFF | |
IN_CI: ON | |
IN_DOCKER: ON | |
steps: | |
# https://github.com/marketplace/actions/docker-setup-qemu | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Pull dev container | |
run: docker pull $DART_DEV_IMAGE:$DOCKER_TAG | |
- name: Build | |
run: | | |
if [ "$CODECOV" = "ON" ]; then | |
ci_env=`bash <(curl -s https://codecov.io/env)` | |
fi | |
docker run \ | |
$ci_env -e CI=true \ | |
--platform $PLATFORM \ | |
--volume $GITHUB_WORKSPACE:$GITHUB_WORKSPACE \ | |
--env-file ./scripts/docker/env.list \ | |
$DART_DEV_IMAGE:$DOCKER_TAG \ | |
/bin/sh -c "cd $GITHUB_WORKSPACE && ./scripts/build.sh" | |
build: | |
name: ${{ matrix.build_type }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
build_type: ["Release", "Debug"] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup pixi | |
uses: prefix-dev/[email protected] | |
with: | |
cache: true | |
- uses: awalsh128/[email protected] | |
with: | |
packages: libgl1-mesa-dev libglu1-mesa-dev | |
version: 1.0 | |
- name: Check Lint | |
run: | | |
DART_VERBOSE=ON \ | |
BUILD_TYPE=${{ matrix.build_type }} \ | |
pixi run check-lint | |
- name: Test DART and dartpy | |
run: | | |
DART_VERBOSE=ON \ | |
BUILD_TYPE=${{ matrix.build_type }} \ | |
pixi run test-all | |
- name: Install | |
run: | | |
DART_VERBOSE=ON \ | |
BUILD_TYPE=${{ matrix.build_type }} \ | |
pixi run install |