_context: use artifact caches from the parent project for junctions #1333
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
name: PR Checks | |
# Pre-merge CI to run on push and pull_request events, even if this seems | |
# redundant, we avoid concurrency with the below configuration. | |
# | |
on: | |
pull_request: | |
workflow_dispatch: | |
# Use the concurrency feature to ensure we don't run redundant workflows | |
# | |
concurrency: | |
group: ${{ github.repository }}-${{ github.ref }}-${{ github.workflow }} | |
cancel-in-progress: true | |
# Left to-do: | |
# - coverage | |
# - publishing docs to gh-pages | |
# - persistent artifact cache | |
# - overnight jobs | |
# - wsl tasks (TODO: Check if GitHub's Windows runners allow WSL) | |
# | |
# New opportunities: | |
# - run tests on mac (GitHub provides MacOS runners) | |
# - standardize WSL tasks by using GitHub-provided runners | |
jobs: | |
tests: | |
runs-on: ubuntu-20.04 | |
continue-on-error: ${{ matrix.allow-failure || false }} | |
strategy: | |
fail-fast: false | |
matrix: | |
# The names here should map to a valid service defined in | |
# "../compose/ci.docker-compose.yml" | |
test-name: | |
- fedora-38 | |
- fedora-39 | |
- fedora-missing-deps | |
- ubuntu-20.04 | |
- lint | |
- mypy | |
include: | |
- test-name: plugins-master | |
allow-failure: true | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v2 | |
# BuildStream requires tags to be able to find its version. | |
with: | |
fetch-depth: 0 | |
- name: Run tests with Docker Compose | |
run: | | |
${GITHUB_WORKSPACE}/.github/run-ci.sh ${{ matrix.test-name }} | |
# Matrix of tests which run against remote services which we bring up adjacently | |
service-tests: | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
# The names here map to valid services defined in "../compose/ci.docker-compose.yml", | |
# and they also map to corresponding filenames of services which are expected | |
# to be run in the background | |
test-name: | |
- buildbarn | |
- buildgrid | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v2 | |
# BuildStream requires tags to be able to find its version. | |
with: | |
fetch-depth: 0 | |
- name: Bring up the RE cluster | |
run: | | |
${GITHUB_WORKSPACE}/.github/run-ci.sh --service ${{ matrix.test-name }} | |
build_docs: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v2 | |
# BuildStream requires tags to be able to find its version. | |
with: | |
fetch-depth: 0 | |
- name: Give `testuser` ownership of the source directory | |
run: sudo chown -R 1000:1000 ${GITHUB_WORKSPACE} | |
- name: Build documentation using Docker Compose | |
run: | | |
docker compose \ | |
--env-file ${GITHUB_WORKSPACE}/.github/common.env \ | |
--file ${GITHUB_WORKSPACE}/.github/compose/ci.docker-compose.yml \ | |
run \ | |
docs | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: docs | |
path: doc/build/html | |
build_wheels: | |
name: Build Python wheel packages on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Fetch latest BuildBox release | |
run: ${GITHUB_WORKSPACE}/.github/wheel-helpers/fetch-latest-buildbox-release.sh | |
- name: Build wheels | |
run: pipx run cibuildwheel==v2.16.2 | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: ./wheelhouse/*.whl | |
test_wheels: | |
name: "Test Python packages: ${{ matrix.test-name }}" | |
needs: [build_wheels] | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
# The names here should map to a valid service defined in | |
# "../compose/ci.docker-compose.yml" | |
test-name: | |
- wheels-manylinux_2_28-cp38 | |
- wheels-manylinux_2_28-cp39 | |
- wheels-manylinux_2_28-cp310 | |
- wheels-manylinux_2_28-cp311 | |
- wheels-manylinux_2_28-cp312 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: wheels | |
path: ./wheelhouse | |
- name: Run tests with Docker Compose | |
run: | | |
${GITHUB_WORKSPACE}/.github/run-ci.sh ${{ matrix.test-name }} |