197 lines
5.8 KiB
YAML
197 lines
5.8 KiB
YAML
---
|
|
# DESCRIPTION: Github actions config
|
|
# This name is key to badges in README.rst, so we use the name build
|
|
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
|
|
|
|
name: build
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: '0 0 * * 0' # weekly
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
working-directory: repo
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.actor }}-${{ github.event_name == 'pull_request' && github.ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
|
|
build-2404-gcc:
|
|
name: Build
|
|
uses: ./.github/workflows/reusable-build.yml
|
|
with:
|
|
os: ${{ matrix.os }}
|
|
cc: ${{ matrix.cc }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- {os: ubuntu-24.04, cc: gcc}
|
|
|
|
build-2404-clang:
|
|
name: Build
|
|
uses: ./.github/workflows/reusable-build.yml
|
|
with:
|
|
os: ${{ matrix.os }}
|
|
cc: ${{ matrix.cc }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- {os: ubuntu-24.04, cc: clang}
|
|
|
|
build-2204-gcc:
|
|
name: Build
|
|
uses: ./.github/workflows/reusable-build.yml
|
|
with:
|
|
os: ${{ matrix.os }}
|
|
cc: ${{ matrix.cc }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- {os: ubuntu-22.04, cc: gcc}
|
|
|
|
build-2204-clang:
|
|
name: Build
|
|
uses: ./.github/workflows/reusable-build.yml
|
|
with:
|
|
os: ${{ matrix.os }}
|
|
cc: ${{ matrix.cc }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- {os: ubuntu-22.04, cc: clang}
|
|
|
|
test-2404-gcc:
|
|
name: Test | ${{ matrix.os }} | ${{ matrix.cc }}
|
|
needs: build-2404-gcc
|
|
uses: ./.github/workflows/reusable-test.yml
|
|
with:
|
|
os: ${{ matrix.os }}
|
|
cc: ${{ matrix.cc }}
|
|
reloc: ${{ matrix.reloc }}
|
|
suite: ${{ matrix.suite }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
# Ubuntu 24.04 gcc
|
|
- {os: ubuntu-24.04, cc: gcc, reloc: 0, suite: dist-vlt-0}
|
|
- {os: ubuntu-24.04, cc: gcc, reloc: 0, suite: dist-vlt-1}
|
|
- {os: ubuntu-24.04, cc: gcc, reloc: 0, suite: dist-vlt-2}
|
|
- {os: ubuntu-24.04, cc: gcc, reloc: 0, suite: dist-vlt-3}
|
|
- {os: ubuntu-24.04, cc: gcc, reloc: 0, suite: vltmt-0}
|
|
- {os: ubuntu-24.04, cc: gcc, reloc: 0, suite: vltmt-1}
|
|
- {os: ubuntu-24.04, cc: gcc, reloc: 0, suite: vltmt-2}
|
|
|
|
test-2404-clang:
|
|
name: Test | ${{ matrix.os }} | ${{ matrix.cc }}
|
|
needs: build-2404-clang
|
|
uses: ./.github/workflows/reusable-test.yml
|
|
with:
|
|
os: ${{ matrix.os }}
|
|
cc: ${{ matrix.cc }}
|
|
reloc: ${{ matrix.reloc }}
|
|
suite: ${{ matrix.suite }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
# Ubuntu 24.04 clang
|
|
- {os: ubuntu-24.04, cc: clang, reloc: 0, suite: dist-vlt-0}
|
|
- {os: ubuntu-24.04, cc: clang, reloc: 0, suite: dist-vlt-1}
|
|
- {os: ubuntu-24.04, cc: clang, reloc: 0, suite: dist-vlt-2}
|
|
- {os: ubuntu-24.04, cc: clang, reloc: 0, suite: dist-vlt-3}
|
|
- {os: ubuntu-24.04, cc: clang, reloc: 0, suite: vltmt-0}
|
|
- {os: ubuntu-24.04, cc: clang, reloc: 0, suite: vltmt-1}
|
|
- {os: ubuntu-24.04, cc: clang, reloc: 0, suite: vltmt-2}
|
|
|
|
test-2204-gcc:
|
|
name: Test | ${{ matrix.os }} | ${{ matrix.cc }}
|
|
needs: build-2204-gcc
|
|
uses: ./.github/workflows/reusable-test.yml
|
|
with:
|
|
os: ${{ matrix.os }}
|
|
cc: ${{ matrix.cc }}
|
|
reloc: ${{ matrix.reloc }}
|
|
suite: ${{ matrix.suite }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
# Ubuntu 22.04 gcc
|
|
- {os: ubuntu-22.04, cc: gcc, reloc: 0, suite: dist-vlt-0}
|
|
- {os: ubuntu-22.04, cc: gcc, reloc: 0, suite: dist-vlt-1}
|
|
- {os: ubuntu-22.04, cc: gcc, reloc: 0, suite: dist-vlt-2}
|
|
- {os: ubuntu-22.04, cc: gcc, reloc: 0, suite: dist-vlt-3}
|
|
- {os: ubuntu-22.04, cc: gcc, reloc: 0, suite: vltmt-0}
|
|
- {os: ubuntu-22.04, cc: gcc, reloc: 0, suite: vltmt-1}
|
|
- {os: ubuntu-22.04, cc: gcc, reloc: 0, suite: vltmt-2}
|
|
|
|
test-2204-clang:
|
|
name: Test | ${{ matrix.os }} | ${{ matrix.cc }}
|
|
needs: build-2204-clang
|
|
uses: ./.github/workflows/reusable-test.yml
|
|
with:
|
|
os: ${{ matrix.os }}
|
|
cc: ${{ matrix.cc }}
|
|
reloc: ${{ matrix.reloc }}
|
|
suite: ${{ matrix.suite }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
# Ubuntu 22.04 clang, also test relocation
|
|
- {os: ubuntu-22.04, cc: clang, reloc: 1, suite: dist-vlt-0}
|
|
- {os: ubuntu-22.04, cc: clang, reloc: 1, suite: dist-vlt-1}
|
|
- {os: ubuntu-22.04, cc: clang, reloc: 1, suite: dist-vlt-2}
|
|
- {os: ubuntu-22.04, cc: clang, reloc: 1, suite: dist-vlt-3}
|
|
- {os: ubuntu-22.04, cc: clang, reloc: 1, suite: vltmt-0}
|
|
- {os: ubuntu-22.04, cc: clang, reloc: 1, suite: vltmt-1}
|
|
- {os: ubuntu-22.04, cc: clang, reloc: 1, suite: vltmt-2}
|
|
|
|
lint-py:
|
|
runs-on: ubuntu-22.04
|
|
name: Lint Python
|
|
env:
|
|
CI_OS_NAME: linux
|
|
CI_COMMIT: ${{ github.sha }}
|
|
CI_BUILD_STAGE_NAME: build
|
|
CI_RUNS_ON: ubuntu-22.04
|
|
CCACHE_COMPRESS: 1
|
|
CCACHE_DIR: ${{ github.workspace }}/.ccache
|
|
CCACHE_LIMIT_MULTIPLE: 0.95
|
|
strategy:
|
|
fail-fast: false
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: repo
|
|
|
|
- name: Install packages for build
|
|
run: ./ci/ci-install.bash
|
|
|
|
# We use specific version numbers, otherwise a Python package
|
|
# update may add a warning and break our build
|
|
- name: Install packages for lint
|
|
run: sudo pip3 install pylint==3.0.2 ruff==0.1.3 clang sphinx sphinx_rtd_theme sphinxcontrib-spelling breathe ruff
|
|
|
|
- name: Configure
|
|
run: autoconf && ./configure --enable-longtests --enable-ccwarn
|
|
|
|
- name: Lint
|
|
run: make -k lint-py
|