mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-10 21:53:57 +08:00
ed6b1693b8
Due to the sensitive nature of these fixes, it was not possible to submit these upstream and vendor the upstream library. Instead, this patch uses a fork of github.com/opencontainers/selinux, branched at commit opencontainers/selinux@879a755db5. In order to permit downstreams to build with this patched version, a snapshot of the forked version has been included in internal/third_party/selinux. Note that since we use "go mod vendor", the patched code is usable even without being "go get"-able. Once the embargo for this issue is lifted we can submit the patches upstream and switch back to a proper upstream go.mod entry. Also, this requires us to temporarily disable the CI job we have that disallows "replace" directives. Fixes: GHSA-cgrx-mc8f-2prm CVE-2025-52881 Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
164 lines
4.2 KiB
YAML
164 lines
4.2 KiB
YAML
name: validate
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
|
|
jobs:
|
|
|
|
commit:
|
|
runs-on: ubuntu-24.04
|
|
# Only check commits on pull requests.
|
|
if: github.event_name == 'pull_request'
|
|
steps:
|
|
- name: get pr commits
|
|
id: 'get-pr-commits'
|
|
uses: tim-actions/get-pr-commits@v1.3.1
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: check subject line length
|
|
uses: tim-actions/commit-message-checker-with-regex@v0.3.2
|
|
with:
|
|
commits: ${{ steps.get-pr-commits.outputs.commits }}
|
|
pattern: '^.{0,72}(\n.*)*$'
|
|
error: 'Subject too long (max 72)'
|
|
|
|
lint:
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- uses: actions/setup-go@v6
|
|
with:
|
|
go-version: 1.24.x
|
|
- uses: golangci/golangci-lint-action@v7
|
|
with:
|
|
version: v2.0
|
|
|
|
codespell:
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- name: install deps
|
|
# Version of codespell bundled with Ubuntu is way old, so use pip.
|
|
run: pip install codespell
|
|
- name: run codespell
|
|
run: codespell
|
|
|
|
cross:
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- name: cross
|
|
run: make build-cross
|
|
|
|
test-stubs:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- uses: actions/setup-go@v6
|
|
with:
|
|
go-version: 1.24.x
|
|
- uses: golangci/golangci-lint-action@v7
|
|
with:
|
|
version: v2.0
|
|
- name: test-stubs
|
|
run: make test
|
|
|
|
test:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
go-version: [1.19.x, 1.23.x, 1.24.x]
|
|
race: ["-race", ""]
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
|
|
- name: install go ${{ matrix.go-version }}
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: ${{ matrix.go-version }}
|
|
|
|
- name: build
|
|
run: make BUILDFLAGS="${{ matrix.race }}" build
|
|
|
|
- name: test
|
|
run: make TESTFLAGS="${{ matrix.race }}" test
|
|
|
|
vm:
|
|
name: "VM"
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
template:
|
|
- template://almalinux-8
|
|
- template://centos-stream-9
|
|
- template://fedora
|
|
- template://experimental/opensuse-tumbleweed
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
|
|
- name: "Install Lima"
|
|
uses: lima-vm/lima-actions/setup@v1
|
|
id: lima-actions-setup
|
|
|
|
- name: "Cache ~/.cache/lima"
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cache/lima
|
|
key: lima-${{ steps.lima-actions-setup.outputs.version }}-${{ matrix.template }}
|
|
|
|
- name: "Start VM"
|
|
# --plain is set to disable file sharing, port forwarding, built-in containerd, etc. for faster start up
|
|
run: limactl start --plain --name=default ${{ matrix.template }}
|
|
|
|
- name: "Initialize VM"
|
|
run: |
|
|
set -eux -o pipefail
|
|
# Sync the current directory to /tmp/selinux in the guest
|
|
limactl cp -r . default:/tmp/selinux
|
|
# Install packages
|
|
if lima command -v dnf >/dev/null; then
|
|
lima sudo dnf install --setopt=install_weak_deps=false --setopt=tsflags=nodocs -y git-core make golang
|
|
elif lima command -v zypper >/dev/null; then
|
|
lima sudo zypper install -y git make go
|
|
else
|
|
echo >&2 "Unsupported distribution"
|
|
exit 1
|
|
fi
|
|
|
|
- name: "make test"
|
|
continue-on-error: true
|
|
run: lima make -C /tmp/selinux test
|
|
|
|
- name: "32-bit test"
|
|
continue-on-error: true
|
|
run: lima make -C /tmp/selinux GOARCH=386 test
|
|
|
|
# https://github.com/opencontainers/selinux/issues/222
|
|
# https://github.com/opencontainers/selinux/issues/225
|
|
- name: "racy test"
|
|
continue-on-error: true
|
|
run: lima bash -c 'cd /tmp/selinux && go test -timeout 10m -count 100000 ./go-selinux'
|
|
|
|
- name: "Show AVC denials"
|
|
run: lima sudo ausearch -m AVC,USER_AVC || true
|
|
|
|
all-done:
|
|
needs:
|
|
- commit
|
|
- lint
|
|
- codespell
|
|
- cross
|
|
- test-stubs
|
|
- test
|
|
- vm
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- run: echo "All jobs completed"
|