Skip to content

CI Linux

CI Linux #4423

Workflow file for this run

# 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