Repository navigation
feat(tool-images): add a build runner image and GLPK and MariaDB Connector/C capabilities #4
Workflow file for this run
This file contains hidden or 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
| name: System libraries | |
| # Builds each reference system-library capability image in tool-images/ (Open MPI, HiGHS, libpq, GLPK, MariaDB Connector/C) natively on amd64 and arm64 and proves it works relocated (tests/system_libraries/run.sh): its payload is copied to /opt/sysroot as the role's init container copies it, the role's own job-started hook applies the environment the role renders for it, and inside the stock actions-runner image the payload's programs run from there, and inside the reference build runner image (tool-images/build) a program compiled against the payload does (for Open MPI, a two-process mpirun). Only on changes that can affect them. Builds nothing it publishes. | |
| on: | |
| pull_request: | |
| paths: | |
| - tool-images/openmpi/** | |
| - tool-images/highs/** | |
| - tool-images/libpq/** | |
| - tool-images/glpk/** | |
| - tool-images/libmariadb/** | |
| - tool-images/build/** | |
| - tests/system_libraries/** | |
| - tests/capabilities/render.yml | |
| - roles/github_runner_arc/files/job-started.sh | |
| - roles/github_runner_arc/tasks/render_scale_set_values.yml | |
| - plugins/filter/arc.py | |
| - .github/workflows/system-libraries.yml | |
| workflow_dispatch: | |
| concurrency: | |
| group: system-libraries-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| relocation: | |
| name: ${{ matrix.payload }} relocated (${{ matrix.platform.arch }}) | |
| runs-on: ${{ matrix.platform.runner }} | |
| timeout-minutes: 45 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| payload: [openmpi, highs, libpq, glpk, libmariadb] | |
| platform: | |
| - {arch: amd64, runner: ubuntu-latest} | |
| - {arch: arm64, runner: ubuntu-24.04-arm} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install Ansible | |
| run: | | |
| set -euo pipefail | |
| if ! python3 -m venv "${RUNNER_TEMP}/venv" 2>/dev/null; then | |
| sudo apt-get update -qq | |
| sudo apt-get install -y -qq python3-venv | |
| python3 -m venv "${RUNNER_TEMP}/venv" | |
| fi | |
| "${RUNNER_TEMP}/venv/bin/pip" install --quiet --prefer-binary ansible-core pyyaml | |
| echo "${RUNNER_TEMP}/venv/bin" >> "$GITHUB_PATH" | |
| - name: Run the relocation test | |
| env: | |
| PAYLOAD: ${{ matrix.payload }} | |
| run: tests/system_libraries/run.sh "$PAYLOAD" |