From a609a0181e84fc66bf9070c185fba01a505ca1c5 Mon Sep 17 00:00:00 2001 From: Charalampos Mainas Date: Fri, 8 May 2026 15:19:10 +0300 Subject: [PATCH 1/3] Hopefully final check PR: https://github.com/urunc-dev/urunc_test/pull/58 Signed-off-by: Charalampos Mainas Reviewed-by: Panagiotis Mavrikos Approved-by: Panagiotis Mavrikos --- .github/workflows/add-git-trailers.yml | 43 +++++++++----------------- .github/workflows/pr-merge.yml | 21 +++++++------ .github/workflows/pr-trailers.yml | 16 ---------- 3 files changed, 26 insertions(+), 54 deletions(-) delete mode 100644 .github/workflows/pr-trailers.yml diff --git a/.github/workflows/add-git-trailers.yml b/.github/workflows/add-git-trailers.yml index 73d5f5f..59d8b51 100644 --- a/.github/workflows/add-git-trailers.yml +++ b/.github/workflows/add-git-trailers.yml @@ -1,12 +1,12 @@ name: Add Git Trailers to PR commits on: - workflow_call: - secrets: - GIT_CLONE_PAT: - required: false - URUNC_BOT_PRIVATE_KEY: - required: true + pull_request_review: + types: [submitted] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true permissions: contents: read @@ -14,16 +14,12 @@ permissions: jobs: git-trailers: name: Add Git Trailers - runs-on: ${{ matrix.runner }} - strategy: - matrix: - include: - - arch: amd64 - runner: ubuntu-22.04 - continue-on-error: true + if: >- + github.event.pull_request.base.ref == 'main' && + github.event.review.state == 'approved' + runs-on: ubuntu-22.04 permissions: contents: write - pull-requests: write steps: - name: Harden the runner (Audit all outbound calls) uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0 @@ -40,11 +36,6 @@ jobs: fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} - - name: Append git trailers - uses: nubificus/git-trailers@8e08c91bb4c1fd9cb1ccbd9cc8029c31acf8da66 # feat_use_rebase - with: - user_info: .github/contributors.yaml - - name: Generate urunc-bot token id: generate-token uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0 @@ -52,20 +43,16 @@ jobs: app-id: ${{ vars.URUNC_BOT_APP_ID }} private-key: ${{ secrets.URUNC_BOT_PRIVATE_KEY }} - - name: Set up Git - run: | - git config --global user.name "urunc-bot[bot]" - git config --global user.email "urunc-bot[bot]@users.noreply.github.com" - - name: Append git trailers - uses: nubificus/git-trailers@18fd322f3fbfd505b4de728974a4ac1f32f758a7 # feat_auto_merge + uses: nubificus/git-trailers@1d1595aacfd9239ae69d773cb895606daa17e538 with: - user_info: .github/contributors.yaml + token: ${{ steps.generate-token.outputs.token }} + user-info: .github/contributors.yaml - name: Merge PR env: GH_TOKEN: ${{ steps.generate-token.outputs.token }} + PR_URL: ${{ github.event.pull_request.html_url }} run: | - PR_URL=${{ github.event.pull_request.html_url }} - + sleep 5 # Wait for github to get updated with the push. Otherwise merge will fail gh pr merge "$PR_URL" --rebase --admin diff --git a/.github/workflows/pr-merge.yml b/.github/workflows/pr-merge.yml index 1b57dfd..fa66f2f 100644 --- a/.github/workflows/pr-merge.yml +++ b/.github/workflows/pr-merge.yml @@ -4,6 +4,8 @@ on: pull_request_target: types: - closed + branches: + - 'main-pr*' permissions: contents: read @@ -11,22 +13,19 @@ permissions: jobs: add-trailers-and-merge: if: | - github.event.pull_request.merged == true && - startsWith(github.event.pull_request.base.ref, 'main-pr') + github.event.pull_request.merged == true runs-on: ubuntu-latest permissions: contents: write - steps: - name: Harden the runner (Audit all outbound calls) uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0 with: egress-policy: audit - - name: Set up Git - run: | - git config --global user.name "urunc-bot[bot]" - git config --global user.email "urunc-bot[bot]@users.noreply.github.com" + - name: Exit if PR is not rebaseable + if: ${{ github.event.pull_request.rebaseable != null && github.event.pull_request.rebaseable == false }} + run: exit 1 - name: Check out repo uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -42,16 +41,18 @@ jobs: private-key: ${{ secrets.URUNC_BOT_PRIVATE_KEY }} - name: Append git trailers - uses: nubificus/git-trailers@18fd322f3fbfd505b4de728974a4ac1f32f758a7 # feat_auto_merge + uses: nubificus/git-trailers@1d1595aacfd9239ae69d773cb895606daa17e538 with: - user_info: .github/contributors.yaml + token: ${{ steps.generate-token.outputs.token }} + user-info: .github/contributors.yaml - name: Create a Pull Request from PR_BRANCH to main and merge it env: GH_TOKEN: ${{ steps.generate-token.outputs.token }} + PR_BRANCH: ${{ github.event.pull_request.base.ref }} run: | PR_BRANCH=${{ github.event.pull_request.base.ref }} - + # Create the pull request PR_URL=$(gh pr create \ --head "$PR_BRANCH" \ diff --git a/.github/workflows/pr-trailers.yml b/.github/workflows/pr-trailers.yml deleted file mode 100644 index 82fbcde..0000000 --- a/.github/workflows/pr-trailers.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Add Git Trailers to PR commits - -on: - pull_request_review: - types: [submitted] - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - git-trailers: - name: Add Git Trailers to PR commits - if: ${{ github.event.pull_request.base.ref == 'main' && github.event.review.state == 'approved' }} - uses: ./.github/workflows/add-git-trailers.yml - secrets: inherit From d85811a6ddd55aaaa175b79b131524bec7ef168a Mon Sep 17 00:00:00 2001 From: charma7 <104625181+charma7@users.noreply.github.com> Date: Fri, 8 May 2026 15:26:48 +0300 Subject: [PATCH 2/3] Update contributors.yaml PR: https://github.com/urunc-dev/urunc_test/pull/59 Signed-off-by: char ma Reviewed-by: Charalampos Mainas Approved-by: Charalampos Mainas --- .github/contributors.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/contributors.yaml b/.github/contributors.yaml index fce1b46..d5a7311 100644 --- a/.github/contributors.yaml +++ b/.github/contributors.yaml @@ -83,3 +83,6 @@ users: jim-junior: name: Beingana Jim Junior email: jimjunior854@gmail.com + charma7: + name: A test user + email: test@mail.com From 9bdc1d0564b8364ee6df15a5d6d4d253153377e7 Mon Sep 17 00:00:00 2001 From: Md Raiyan Date: Fri, 15 May 2026 17:21:18 +0000 Subject: [PATCH 3/3] fix(e2e): use StaticNetworkUnikernelIP constant in httpStaticNetTest Signed-off-by: Md Raiyan --- tests/e2e/test_functions.go | 58 ++----------------------------------- 1 file changed, 2 insertions(+), 56 deletions(-) diff --git a/tests/e2e/test_functions.go b/tests/e2e/test_functions.go index 9e205c4..c7cbb6d 100644 --- a/tests/e2e/test_functions.go +++ b/tests/e2e/test_functions.go @@ -17,7 +17,6 @@ package urunce2etesting import ( "encoding/json" "fmt" - "net" "os" "os/exec" "path/filepath" @@ -27,8 +26,8 @@ import ( "strconv" "strings" - "github.com/asaskevich/govalidator" "github.com/opencontainers/runtime-spec/specs-go" + "github.com/urunc-dev/urunc/internal/constants" "github.com/vishvananda/netns" ) @@ -368,44 +367,7 @@ func httpStaticNetTest(tool testTool) (err error) { err = fmt.Errorf("Failed to revert to default network namespace: %v", err) } }() - ifaces, err := net.Interfaces() - if err != nil { - return fmt.Errorf("Failed to get all interfaces in current network namespace: %v", err) - } - var tapUrunc net.Interface - for _, iface := range ifaces { - if strings.Contains(iface.Name, "urunc") { - tapUrunc = iface - break - } - } - if tapUrunc.Name == "" { - var names []string - for _, iface := range ifaces { - names = append(names, iface.Name) - } - err = fmt.Errorf("Expected tap0_urunc, got %v", names) - return fmt.Errorf("Failed to find urunc's tap device: %v", err) - } - - addrs, err := tapUrunc.Addrs() - if err != nil { - return fmt.Errorf("Failed to get %s interface's IP addresses: %v", tapUrunc.Name, err) - } - ipAddr := "" - for _, addr := range addrs { - tmp := strings.Split(addr.String(), "/")[0] - if govalidator.IsIPv4(tmp) { - ipAddr = tmp - break - } - } - if ipAddr == "" { - return fmt.Errorf("Failed to get %s interface's IPv4 address", tapUrunc.Name) - } - parts := strings.Split(ipAddr, ".") - newIP := fmt.Sprintf("%s.%s.%s.2", parts[0], parts[1], parts[2]) - url := fmt.Sprintf("http://%s:8080", newIP) + url := fmt.Sprintf("http://%s:8080", constants.StaticNetworkUnikernelIP) curlCmd := fmt.Sprintf("curl %s", url) params := strings.Fields(curlCmd) cmd := exec.Command(params[0], params[1:]...) //nolint:gosec @@ -417,21 +379,5 @@ func httpStaticNetTest(tool testTool) (err error) { return fmt.Errorf("Failed to receive valid response") } - // FIXME: Investigate why the GET request using net/http fails, while is successful using curl - // - // client := http.DefaultClient - // client.Timeout = 10 * time.Second - // resp, err := client.Get(url) - // if err != nil { - // t.Logf("Failed to perform GET request to %s: %v", url, err) - // } - // defer resp.Body.Close() - // body, err := io.ReadAll(resp.Body) - // if err != nil { - // t.Logf("Error reading response body: %v", err) - // } - // t.Log(string(body)) - - // Find pod ID return nil }