ci: make Gitea primary Linux forge
Rust CI / cargo fmt (push) Successful in 45s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 1m4s
Rust CI / cargo clippy (push) Successful in 1m6s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m48s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Successful in 50s
Rust CI / cargo doc (push) Failing after 48s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m49s
Proto Fuzz Smoke / cargo fuzz smoke (push) Successful in 2m3s
Supply chain / cargo-deny advisories (push) Failing after 29s
Netem Interop / netem interop (push) Successful in 1m33s
Supply chain / cargo-deny bans licenses sources (push) Failing after 27s
Supply chain / actionlint (push) Failing after 14s

This commit is contained in:
Nils Andreas Svee committed 2026-09-01 11:18:51 +07:00
1 parent a2f542bb97
commit 3a29b4efb2
8 files changed
+134 -83

No files matched your search

@@ -7,7 +7,6 @@ on:
pull_request: pull_request:
branches: branches:
- main - main
merge_group:
workflow_dispatch: workflow_dispatch:
permissions: permissions:
@@ -32,7 +31,7 @@ jobs:
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1 uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1
with: with:
components: rustfmt components: rustfmt
cache-key: fmt cache: false
- name: Check formatting - name: Check formatting
uses: actions-rust-lang/rustfmt@4066006ec54a31931b9b1fddfd38f2fdf2d27143 # v1 uses: actions-rust-lang/rustfmt@4066006ec54a31931b9b1fddfd38f2fdf2d27143 # v1
@@ -52,7 +51,7 @@ jobs:
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1 uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1
with: with:
components: clippy components: clippy
cache-key: clippy cache: false
- name: Run clippy - name: Run clippy
run: | run: |
@@ -79,46 +78,22 @@ jobs:
matrix: matrix:
include: include:
- task: check - task: check
runner: ubuntu-24.04
target: x86_64-unknown-linux-gnu target: x86_64-unknown-linux-gnu
musl: false musl: false
- task: test - task: test
runner: ubuntu-24.04
target: x86_64-unknown-linux-gnu target: x86_64-unknown-linux-gnu
musl: false musl: false
- task: check - task: check
runner: ubuntu-24.04
target: x86_64-unknown-linux-musl target: x86_64-unknown-linux-musl
musl: true musl: true
- task: test - task: test
runner: ubuntu-24.04
target: x86_64-unknown-linux-musl target: x86_64-unknown-linux-musl
musl: true musl: true
- task: check runs-on: ubuntu-latest
runner: ubuntu-24.04-arm
target: aarch64-unknown-linux-gnu
musl: false
- task: test
runner: ubuntu-24.04-arm
target: aarch64-unknown-linux-gnu
musl: false
- task: check
runner: ubuntu-24.04-arm
target: aarch64-unknown-linux-musl
musl: true
- task: test
runner: ubuntu-24.04-arm
target: aarch64-unknown-linux-musl
musl: true
runs-on: ${{ matrix.runner }}
timeout-minutes: 25 timeout-minutes: 25
steps: steps:
@@ -137,7 +112,7 @@ jobs:
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1 uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1
with: with:
target: ${{ matrix.target }} target: ${{ matrix.target }}
cache-key: ${{ matrix.task }}-${{ matrix.target }} cache: false
- name: Run ${{ matrix.task }} with all features - name: Run ${{ matrix.task }} with all features
run: | run: |
@@ -174,7 +149,7 @@ jobs:
- name: Install Rust toolchain - name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1 uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1
with: with:
cache-key: docs cache: false
- name: Check docs - name: Check docs
run: | run: |
@@ -32,7 +32,7 @@ jobs:
- name: Install stable Rust toolchain - name: Install stable Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1 uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1
with: with:
cache-key: fuzz cache: false
- name: Install nightly Rust toolchain - name: Install nightly Rust toolchain
# Installed alongside, but deliberately not made the directory # Installed alongside, but deliberately not made the directory
@@ -32,13 +32,14 @@ jobs:
- name: Install Rust toolchain - name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1 uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1
with: with:
cache-key: interop-netem cache: false
- name: Check host tools - name: Check host tools and network administration access
run: | run: |
ip -V ip -V
tc -V tc -V
go version go version
sudo -n true
- name: Install upstream irtt - name: Install upstream irtt
run: | run: |
@@ -62,14 +63,14 @@ jobs:
run: | run: |
latest_summary="$(find target/interop-netem -mindepth 2 -maxdepth 2 -name github-step-summary.md -type f -print 2>/dev/null | sort | tail -n 1)" latest_summary="$(find target/interop-netem -mindepth 2 -maxdepth 2 -name github-step-summary.md -type f -print 2>/dev/null | sort | tail -n 1)"
if [ -n "$latest_summary" ]; then if [ -n "$latest_summary" ]; then
cat "$latest_summary" >> "$GITHUB_STEP_SUMMARY" cat "$latest_summary" >> "$GITEA_STEP_SUMMARY"
else else
echo "No netem interop github-step-summary.md found." >> "$GITHUB_STEP_SUMMARY" echo "No netem interop github-step-summary.md found." >> "$GITEA_STEP_SUMMARY"
fi fi
- name: Upload netem interop artifacts - name: Upload netem interop artifacts
if: always() if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 uses: https://gitea.com/actions/gitea-upload-artifact@v7
with: with:
name: interop-netem name: interop-netem
path: target/interop-netem path: target/interop-netem
@@ -25,7 +25,16 @@ jobs:
with: with:
persist-credentials: false persist-credentials: false
- name: Check semver compatibility - name: Install Rust toolchain
uses: obi1kenobi/cargo-semver-checks-action@6b69fcf40e9b5fb17adeb57e4b6ecd020649a239 # v2 uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1
with: with:
feature-group: all-features cache: false
# The action wrapper downloads through the GitHub API and uses the
# GitHub cache service. The underlying CLI is portable and preserves
# the existing wrapper's `feature-group: all-features` behavior.
- name: Install cargo-semver-checks
run: cargo install cargo-semver-checks --locked
- name: Check semver compatibility
run: cargo semver-checks check-release --all-features
@@ -7,7 +7,6 @@ on:
pull_request: pull_request:
branches: branches:
- main - main
merge_group:
schedule: schedule:
- cron: "41 2 * * 1" - cron: "41 2 * * 1"
workflow_dispatch: workflow_dispatch:
@@ -15,6 +14,9 @@ on:
permissions: permissions:
contents: read contents: read
env:
ACTIONLINT_VERSION: 1.7.7
jobs: jobs:
cargo-deny: cargo-deny:
name: cargo-deny ${{ matrix.checks }} name: cargo-deny ${{ matrix.checks }}
@@ -60,20 +62,26 @@ jobs:
with: with:
persist-credentials: false persist-credentials: false
- name: Install actionlint
run: go install github.com/rhysd/actionlint/cmd/actionlint@v${ACTIONLINT_VERSION}
- name: actionlint handwritten workflows - name: actionlint handwritten workflows
uses: raven-actions/actionlint@205b530c5d9fa8f44ae9ed59f341a0db994aa6f8 # actionlint validates GitHub Actions syntax. It cannot parse Gitea's
with: # required absolute action URL in interop-netem.yml, so that workflow
files: >- # is checked by the Gitea runner instead.
.github/workflows/actions-security.yml, run: |
.github/workflows/ci.yml, "$(go env GOPATH)/bin/actionlint" \
.github/workflows/interop-netem.yml, .gitea/workflows/ci.yml \
.github/workflows/osv-scanner.yml, .gitea/workflows/docker-publish.yml \
.github/workflows/rust-clippy.yml, .gitea/workflows/fuzz.yml \
.github/workflows/semver.yml, .gitea/workflows/semver.yml \
.github/workflows/supply-chain.yml .gitea/workflows/supply-chain.yml \
.github/workflows/actions-security.yml \
.github/workflows/ci-arm.yml \
.github/workflows/osv-scanner.yml \
.github/workflows/rust-clippy.yml
- name: actionlint generated release workflow - name: actionlint generated release workflow
uses: raven-actions/actionlint@205b530c5d9fa8f44ae9ed59f341a0db994aa6f8 run: >-
with: "$(go env GOPATH)/bin/actionlint" -shellcheck=
files: .github/workflows/irtt-rs-release.yml .github/workflows/irtt-rs-release.yml
shellcheck: false
+6 -28
View File
@@ -16,34 +16,6 @@ permissions:
contents: read contents: read
jobs: jobs:
actionlint:
name: actionlint
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- name: actionlint handwritten workflows
uses: raven-actions/actionlint@205b530c5d9fa8f44ae9ed59f341a0db994aa6f8
with:
files: >-
.github/workflows/actions-security.yml,
.github/workflows/ci.yml,
.github/workflows/interop-netem.yml,
.github/workflows/osv-scanner.yml,
.github/workflows/rust-clippy.yml,
.github/workflows/semver.yml,
.github/workflows/supply-chain.yml
- name: actionlint generated release workflow
uses: raven-actions/actionlint@205b530c5d9fa8f44ae9ed59f341a0db994aa6f8
with:
files: .github/workflows/irtt-rs-release.yml
shellcheck: false
zizmor: zizmor:
name: zizmor name: zizmor
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -60,7 +32,13 @@ jobs:
with: with:
persist-credentials: false persist-credentials: false
# Zizmor's SARIF integration publishes GitHub Code Scanning results.
# It remains here while portable actionlint runs with Gitea CI, but scans
# both workflow directories through its GitHub Actions rule set.
- name: Run zizmor - name: Run zizmor
uses: zizmorcore/zizmor-action@70fb788f84895a7701f5643d103d587e460b5c99 # v0.6.3 uses: zizmorcore/zizmor-action@70fb788f84895a7701f5643d103d587e460b5c99 # v0.6.3
with: with:
persona: regular persona: regular
inputs: |
.github/workflows
.gitea/workflows
+80
View File
@@ -0,0 +1,80 @@
name: Rust ARM CI
on:
push:
branches:
- main
pull_request:
branches:
- main
merge_group:
workflow_dispatch:
permissions:
contents: read
env:
CARGO_TERM_COLOR: always
jobs:
verify:
name: cargo ${{ matrix.task }} (${{ matrix.target }})
# Gitea currently has only amd64 Linux runners; retain ARM coverage here.
strategy:
fail-fast: false
matrix:
include:
- task: check
target: aarch64-unknown-linux-gnu
musl: false
- task: test
target: aarch64-unknown-linux-gnu
musl: false
- task: check
target: aarch64-unknown-linux-musl
musl: true
- task: test
target: aarch64-unknown-linux-musl
musl: true
runs-on: ubuntu-24.04-arm
timeout-minutes: 25
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- name: Install musl toolchain
if: matrix.musl
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends musl-tools
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1
with:
target: ${{ matrix.target }}
cache-key: ${{ matrix.task }}-${{ matrix.target }}
- name: Run ${{ matrix.task }} with all features
run: |
cargo ${{ matrix.task }} \
--workspace \
--all-targets \
--all-features \
--target ${{ matrix.target }} \
--locked
- name: Run ${{ matrix.task }} without default features
run: |
cargo ${{ matrix.task }} \
--workspace \
--all-targets \
--no-default-features \
--target ${{ matrix.target }} \
--locked
+1 -1
View File
@@ -139,5 +139,5 @@ scenario contains the existing comparison harness output under
`netem-summary.json` files. Server stdout/stderr are captured at the run root as `netem-summary.json` files. Server stdout/stderr are captured at the run root as
`server.stdout` and `server.stderr`. `server.stdout` and `server.stderr`.
On macOS, `ip netns` and `tc netem` are unavailable; use the GitHub Actions On macOS, `ip netns` and `tc netem` are unavailable; use the Gitea Actions
workflow for netem coverage. workflow for netem coverage.