Skip to content

Commit 3272d98

Browse files
ci: explore and implement multi-distro e2e testing matrix (#208)
Add support for running E2E tests across multiple Linux distributions (Ubuntu, Fedora, Rocky Linux 9, OpenSUSE Leap) using GitHub Actions job containers. Key changes: - Multi-distro matrix: Fedora, Rocky Linux 9, OpenSUSE Leap alongside Ubuntu - Distro-agnostic setup: auto-detect package manager (apt/dnf/zypper) - Resilient containerd service management without requiring systemd - Fix runc version prefix handling (ensure 'v' prefix in download URL) - Fix OpenSUSE libseccomp package name with fallback - Restore containerd devmapper and urunc runtime config snippet - Add exploration doc: docs/explorations/e2e-multi-distro-options.md Fixes: #208 Signed-off-by: Aashish Pandit &lt;imshubham.22apr@gmail.com&gt; Signed-off-by: imshubham22apr-gif <imshubham.22apr@gmail.com>
1 parent c7f8286 commit 3272d98

36 files changed

Lines changed: 395 additions & 794 deletions

.github/contributors.yaml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ users:
5656
hemang1404:
5757
name: Hemang Sharrma
5858
email: hemangsharrma@gmail.com
59-
jiwahn:
59+
ilp-sys:
6060
name: Jiwoo Ahn
6161
email: ikwydls1314@gmail.com
6262
goyalpalak18:
@@ -86,12 +86,3 @@ users:
8686
kaizakin:
8787
name: Karthik Balasubramanian
8888
email: karthikbalasubramanian08@gmail.com
89-
MUFFANUJ:
90-
name: Anuj Kumar Singh
91-
email: anujsinghhero292@gmail.com
92-
neo-0007:
93-
name: Hrishikesh Gohain
94-
email: hrishikeshgohain123@gmail.com
95-
rishi-jat:
96-
name: Rishi Jat
97-
email: rishijat098@gmail.com

.github/linters/urunc-dict.txt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ TUNTAP
8888
Timestamping
8989
Tmpfs
9090
Tuntap
91-
TTRPC
9291
UNBINDABLE
9392
URUNC
9493
Unikernel
@@ -128,11 +127,8 @@ clis
128127
cmainas
129128
cmdline
130129
cntr
131-
containerdshim
132130
containerd
133131
containerd's
134-
containersapi
135-
contentapi
136132
cpio
137133
creack
138134
crictl
@@ -154,7 +150,6 @@ elevateprivileges
154150
elfloader
155151
endmacro
156152
epoll
157-
errdefs
158153
etest
159154
etesting
160155
etfs
@@ -182,7 +177,6 @@ httpreply
182177
iface
183178
ifaces
184179
ifname
185-
imagesapi
186180
initpipe
187181
initrds
188182
inlinehilite
@@ -204,7 +198,6 @@ kwds
204198
lazytime
205199
lenag
206200
lenpg
207-
leasesapi
208201
levarage
209202
libc
210203
libcontainer
@@ -303,10 +296,8 @@ setgroup
303296
settime
304297
sgid
305298
sharedfs
306-
snapshotsapi
307299
sigaction
308300
sigreturn
309-
sigstr
310301
sirupsen
311302
socker
312303
stretchr
@@ -326,7 +317,6 @@ tmpl
326317
tomlq
327318
traefik
328319
triger
329-
ttrpc
330320
twemoji
331321
uidmap
332322
ukernel
Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,29 @@
11
name: Add Git Trailers to PR commits
22

33
on:
4-
pull_request_review:
5-
types: [submitted]
6-
7-
concurrency:
8-
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
9-
cancel-in-progress: true
4+
workflow_call:
5+
secrets:
6+
GIT_CLONE_PAT:
7+
required: false
8+
URUNC_BOT_PRIVATE_KEY:
9+
required: true
1010

1111
permissions:
1212
contents: read
1313

1414
jobs:
1515
git-trailers:
1616
name: Add Git Trailers
17-
if: >-
18-
github.event.pull_request.base.ref == 'main' &&
19-
github.event.review.state == 'approved'
20-
runs-on: ubuntu-22.04
17+
runs-on: ${{ matrix.runner }}
18+
strategy:
19+
matrix:
20+
include:
21+
- arch: amd64
22+
runner: ubuntu-22.04
23+
continue-on-error: true
2124
permissions:
2225
contents: write
26+
pull-requests: write
2327
steps:
2428
- name: Harden the runner (Audit all outbound calls)
2529
uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0
@@ -36,23 +40,32 @@ jobs:
3640
fetch-depth: 0
3741
ref: ${{ github.event.pull_request.head.sha }}
3842

43+
- name: Append git trailers
44+
uses: nubificus/git-trailers@8e08c91bb4c1fd9cb1ccbd9cc8029c31acf8da66 # feat_use_rebase
45+
with:
46+
user_info: .github/contributors.yaml
47+
3948
- name: Generate urunc-bot token
4049
id: generate-token
4150
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
4251
with:
4352
app-id: ${{ vars.URUNC_BOT_APP_ID }}
4453
private-key: ${{ secrets.URUNC_BOT_PRIVATE_KEY }}
4554

55+
- name: Set up Git
56+
run: |
57+
git config --global user.name "urunc-bot[bot]"
58+
git config --global user.email "urunc-bot[bot]@users.noreply.github.com"
59+
4660
- name: Append git trailers
47-
uses: nubificus/git-trailers@1d1595aacfd9239ae69d773cb895606daa17e538
61+
uses: nubificus/git-trailers@18fd322f3fbfd505b4de728974a4ac1f32f758a7 # feat_auto_merge
4862
with:
49-
token: ${{ steps.generate-token.outputs.token }}
50-
user-info: .github/contributors.yaml
63+
user_info: .github/contributors.yaml
5164

5265
- name: Merge PR
5366
env:
5467
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
55-
PR_URL: ${{ github.event.pull_request.html_url }}
5668
run: |
57-
sleep 5 # Wait for github to get updated with the push. Otherwise merge will fail
69+
PR_URL=${{ github.event.pull_request.html_url }}
70+
5871
gh pr merge "$PR_URL" --rebase --admin

.github/workflows/build-latest.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ jobs:
7272

7373
- name: Extract Docker metadata
7474
id: meta
75-
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf
75+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051
7676
with:
7777
images: ${{ env.IMAGE_NAME }}
7878
tags: |
@@ -110,7 +110,7 @@ jobs:
110110
111111
- name: Build and push urunc-deploy-${{ matrix.arch}}
112112
id: build-and-push
113-
uses: docker/build-push-action@789f68658055d3ca993799b232b5c46dfe3f114d # master
113+
uses: docker/build-push-action@9e436ba9f2d7bcd1d038c8e55d039d37896ddc5d # master
114114
with:
115115
context: ./deployment/urunc-deploy
116116
tags: ${{ steps.meta.outputs.tags }}

.github/workflows/ci_on_push.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
name: urunc CI
22

33
on:
4+
push:
5+
branches: ["chore/issue-208-e2e-multi-distro"]
46
pull_request:
57
branches: ["main"]
68
types: [opened,synchronize,reopened,labeled]

.github/workflows/ci_test.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: urunc CI Test
2+
3+
on:
4+
push:
5+
branches: ["chore/issue-208-e2e-multi-distro"]
6+
7+
jobs:
8+
ci-test:
9+
permissions:
10+
contents: read
11+
packages: write
12+
id-token: write
13+
attestations: write
14+
pull-requests: read
15+
uses: ./.github/workflows/ci.yml
16+
with:
17+
ref: ${{ github.sha }}
18+
skip-build: "no"
19+
skip-lint: "no"
20+
secrets: inherit

.github/workflows/pr-merge.yml

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,29 @@ on:
44
pull_request_target:
55
types:
66
- closed
7-
branches:
8-
- 'main-pr*'
97

108
permissions:
119
contents: read
1210

1311
jobs:
1412
add-trailers-and-merge:
1513
if: |
16-
github.event.pull_request.merged == true
14+
github.event.pull_request.merged == true &&
15+
startsWith(github.event.pull_request.base.ref, 'main-pr')
1716
runs-on: ubuntu-latest
1817
permissions:
1918
contents: write
19+
2020
steps:
2121
- name: Harden the runner (Audit all outbound calls)
2222
uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0
2323
with:
2424
egress-policy: audit
2525

26-
- name: Exit if PR is not rebaseable
27-
if: ${{ github.event.pull_request.rebaseable != null && github.event.pull_request.rebaseable == false }}
28-
run: exit 1
26+
- name: Set up Git
27+
run: |
28+
git config --global user.name "urunc-bot[bot]"
29+
git config --global user.email "urunc-bot[bot]@users.noreply.github.com"
2930
3031
- name: Check out repo
3132
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -41,18 +42,16 @@ jobs:
4142
private-key: ${{ secrets.URUNC_BOT_PRIVATE_KEY }}
4243

4344
- name: Append git trailers
44-
uses: nubificus/git-trailers@1d1595aacfd9239ae69d773cb895606daa17e538
45+
uses: nubificus/git-trailers@18fd322f3fbfd505b4de728974a4ac1f32f758a7 # feat_auto_merge
4546
with:
46-
token: ${{ steps.generate-token.outputs.token }}
47-
user-info: .github/contributors.yaml
47+
user_info: .github/contributors.yaml
4848

4949
- name: Create a Pull Request from PR_BRANCH to main and merge it
5050
env:
5151
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
52-
PR_BRANCH: ${{ github.event.pull_request.base.ref }}
5352
run: |
5453
PR_BRANCH=${{ github.event.pull_request.base.ref }}
55-
54+
5655
# Create the pull request
5756
PR_URL=$(gh pr create \
5857
--head "$PR_BRANCH" \

.github/workflows/pr-trailers.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Add Git Trailers to PR commits
2+
3+
on:
4+
pull_request_review:
5+
types: [submitted]
6+
7+
concurrency:
8+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
9+
cancel-in-progress: true
10+
11+
jobs:
12+
git-trailers:
13+
name: Add Git Trailers to PR commits
14+
if: ${{ github.event.pull_request.base.ref == 'main' && github.event.review.state == 'approved' }}
15+
uses: ./.github/workflows/add-git-trailers.yml
16+
secrets: inherit

.github/workflows/release-trigger.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ jobs:
159159
echo "EOF" >> $GITHUB_OUTPUT
160160
161161
- name: Create initial release
162-
uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0
162+
uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2.6.1
163163
id: create_release
164164
with:
165165
files: |

0 commit comments

Comments
 (0)