Files
continuwuity/.forgejo/workflows/complement.yml
T

88 lines
2.5 KiB
YAML

name: Complement
on:
pull_request:
types: [labeled]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: complement-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
complement:
name: Matrix compliance tests
if: github.event_name == 'workflow_dispatch' || github.event.label.name == 'Testing/Complement'
runs-on: ubuntu-latest
services:
dind:
image: docker:dind
options: --privileged
env:
DOCKER_TLS_CERTDIR: ""
env:
DOCKER_HOST: tcp://dind:2375
DOCKER_TLS_CERTDIR: ""
steps:
- name: Checkout Continuwuity
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- name: Checkout Complement
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: matrix-org/complement
ref: 6d2fdc286c2b44faaddd1037205869b2242a4005
path: complement-source
persist-credentials: false
- name: Setup LLVM
uses: ./.forgejo/actions/setup-llvm-with-apt
with:
extra-packages: golang-go jq liburing-dev liburing2
- name: Setup Rust with caching
uses: ./.forgejo/actions/setup-rust
with:
github-token: ${{ secrets.GH_PUBLIC_RO }}
- name: Build Complement image
run: |
cargo build --locked -p conduwuit
docker build --tag continuwuity:complement --file docker/complement.Dockerfile .
- name: Run Complement tests
id: complement
shell: bash
run: |
set +e
COMPLEMENT_HS_PORT_BINDING_IP="$(getent ahostsv4 dind | awk 'NR == 1 { print $1 }')" \
COMPLEMENT_HOSTNAME_RUNNING_COMPLEMENT=dind \
./bin/complement complement-source complement_test_logs.jsonl complement_test_results.jsonl | tee complement_output.log
status=${PIPESTATUS[0]}
set -e
if [ ! -s complement_test_results.jsonl ]; then
exit "$status"
fi
diff --unified --color=always \
tests/test_results/complement/test_results.jsonl \
complement_test_results.jsonl
- name: Upload Complement artifacts
if: always()
uses: forgejo/upload-artifact@v4
with:
name: complement-${{ github.run_id }}
path: |
complement_output.log
complement_test_logs.jsonl
complement_test_results.jsonl
if-no-files-found: warn