Skip to content

Continuous Integration #1688

Continuous Integration

Continuous Integration #1688

Workflow file for this run

---
name: Continuous Integration
on:
merge_group:
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build-test:
runs-on: ubuntu-latest
strategy:
matrix:
flavor: ["cpp", "rust"]
steps:
# While the docker/build-push-action works from the Git context, we still need
# the checkout step for running our tests.
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
with:
persist-credentials: false
- uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1
- uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 # v6.9.0
with:
file: .devcontainer/${{ matrix.flavor }}/Dockerfile
load: true
tags: ${{ github.repository }}-${{ matrix.flavor }}:test
cache-from: type=gha,scope=${{ github.repository }}-${{ matrix.flavor }}
- uses: actions/cache/restore@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4.1.1
if: matrix.flavor == 'cpp'
with:
path: test/.xwin-cache
key: xwin-cache
restore-keys: |
xwin-cache
- name: Run Tests
run: |
set -Eeuo pipefail
docker run --rm --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock --mount type=bind,src="${{ github.workspace }}/.devcontainer/${{ matrix.flavor }}/test",dst=/ws -w /ws ${{ github.repository }}-${{ matrix.flavor }}:test bats --formatter junit testsuite.bats | tee test-report-${{ matrix.flavor }}.xml
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
if: always()
with:
name: test-results-${{ matrix.flavor }}
path: test-report-*.xml
publish-test:
runs-on: ubuntu-latest
permissions:
checks: write
pull-requests: write
needs: build-test
if: always()
steps:
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
merge-multiple: true
pattern: test-results-*
- uses: EnricoMi/publish-unit-test-result-action@82082dac68ad6a19d980f8ce817e108b9f496c2a # v2.17.1
with:
files: test-report-*.xml