summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorNicolas Vandamme <n.vandamme@firis-system.lu>2025-09-01 17:24:26 +0200
committerGitHub <noreply@github.com>2025-09-01 17:24:26 +0200
commita791cc3b7bb28081a6e79a988964f1fc51a47dae (patch)
treeef5e734bf580f1abfd7d3d4ea30240d8d9fb1278 /.github/workflows
parentb9f60711392463af1892a30472fba6622a73390a (diff)
parentb1b4545cb7984cd3cdf42554ab2b28acd1ecb6cb (diff)
downloadvyos-1x-a791cc3b7bb28081a6e79a988964f1fc51a47dae.tar.gz
vyos-1x-a791cc3b7bb28081a6e79a988964f1fc51a47dae.zip
Merge branch 'vyos:current' into current
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/check-pr-conflicts.yml2
-rw-r--r--.github/workflows/cla-check.yml18
-rw-r--r--.github/workflows/cleanup-mirror-pr-branch.yml16
-rw-r--r--.github/workflows/darker-ruff-lint.yml (renamed from .github/workflows/lint-with-ruff.yml)6
-rw-r--r--.github/workflows/mirror-pr-and-sync.yml26
-rw-r--r--.github/workflows/package-smoketest.yml73
-rw-r--r--.github/workflows/pr-mirror-repo-sync.yml35
-rw-r--r--.github/workflows/trigger-pr-mirror-repo-sync.yml13
8 files changed, 128 insertions, 61 deletions
diff --git a/.github/workflows/check-pr-conflicts.yml b/.github/workflows/check-pr-conflicts.yml
index f09e66415..6cca61e8d 100644
--- a/.github/workflows/check-pr-conflicts.yml
+++ b/.github/workflows/check-pr-conflicts.yml
@@ -10,5 +10,5 @@ permissions:
jobs:
check-pr-conflict-call:
- uses: vyos/.github/.github/workflows/check-pr-merge-conflict.yml@current
+ uses: vyos/.github/.github/workflows/check-pr-conflict.yml@current
secrets: inherit
diff --git a/.github/workflows/cla-check.yml b/.github/workflows/cla-check.yml
new file mode 100644
index 000000000..4b8182585
--- /dev/null
+++ b/.github/workflows/cla-check.yml
@@ -0,0 +1,18 @@
+name: "CLA Check"
+
+permissions:
+ actions: write
+ contents: read
+ pull-requests: write
+ statuses: write
+
+on:
+ pull_request_target:
+ types: [opened, synchronize, closed]
+ issue_comment:
+ types: [created]
+
+jobs:
+ call-cla-assistant:
+ uses: vyos/vyos-cla-signatures/.github/workflows/cla-reusable.yml@current
+ secrets: inherit
diff --git a/.github/workflows/cleanup-mirror-pr-branch.yml b/.github/workflows/cleanup-mirror-pr-branch.yml
deleted file mode 100644
index a62e44b24..000000000
--- a/.github/workflows/cleanup-mirror-pr-branch.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-name: Cleanup pr mirror branch
-
-on:
- pull_request:
- types: [closed]
- branches:
- - current
-
-permissions:
- contents: write
-
-jobs:
- call-delete-branch:
- if: github.repository_owner != 'vyos'
- uses: vyos/.github/.github/workflows/cleanup-mirror-pr-branch.yml@current
- secrets: inherit
diff --git a/.github/workflows/lint-with-ruff.yml b/.github/workflows/darker-ruff-lint.yml
index 00cc9ca1b..0307d14d4 100644
--- a/.github/workflows/lint-with-ruff.yml
+++ b/.github/workflows/darker-ruff-lint.yml
@@ -1,4 +1,4 @@
-name: Lint py code with ruff
+name: Python Lint (Darker + Ruff)
on:
pull_request_target:
branches:
@@ -9,6 +9,6 @@ permissions:
contents: read
jobs:
- ruff-lint:
- uses: vyos/.github/.github/workflows/lint-with-ruff.yml@current
+ darker-ruff-lint:
+ uses: vyos/.github/.github/workflows/lint-with-darker-ruff.yml@current
secrets: inherit
diff --git a/.github/workflows/mirror-pr-and-sync.yml b/.github/workflows/mirror-pr-and-sync.yml
deleted file mode 100644
index 48a67a43f..000000000
--- a/.github/workflows/mirror-pr-and-sync.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-name: Create Mirror PR and Repo Sync
-on:
- workflow_dispatch:
- inputs:
- pr_number:
- description: 'Source repo PR Number'
- required: true
- type: string
- sync_branch:
- description: 'branch to sync'
- required: true
- type: string
-
-permissions:
- pull-requests: write
- contents: write
-
-jobs:
- call-mirror-pr-and-sync:
- if: github.repository_owner != 'vyos'
- uses: VyOS-Networks/vyos-reusable-workflows/.github/workflows/mirror-pr-and-sync.yml@main
- with:
- pr_number: ${{ inputs.pr_number }}
- sync_branch: ${{ inputs.sync_branch }}
- secrets:
- PAT: ${{ secrets.PAT }}
diff --git a/.github/workflows/package-smoketest.yml b/.github/workflows/package-smoketest.yml
index ae34ea2f0..a0e3156d1 100644
--- a/.github/workflows/package-smoketest.yml
+++ b/.github/workflows/package-smoketest.yml
@@ -24,6 +24,7 @@ jobs:
build_iso:
runs-on: ubuntu-24.04
timeout-minutes: 45
+ if: github.repository == 'vyos/vyos-1x'
container:
image: vyos/vyos-build:current
options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 --privileged
@@ -41,13 +42,14 @@ jobs:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
+ submodules: true
- name: Build vyos-1x package
run: |
cd packages/vyos-1x; dpkg-buildpackage -uc -us -tc -b
- name: Generate ISO version string
id: version
run: |
- echo "build_version=1.5-integration-$(date -u +%Y%m%d%H%M)" >> $GITHUB_OUTPUT
+ echo "build_version=$(date -u +%Y.%m.%d-%H%M-integration)" >> $GITHUB_OUTPUT
- name: Build custom ISO image
shell: bash
run: |
@@ -63,6 +65,7 @@ jobs:
generic
- uses: actions/upload-artifact@v4
with:
+ retention-days: 2
name: vyos-${{ steps.version.outputs.build_version }}
path: |
build/live-image-amd64.hybrid.iso
@@ -92,7 +95,38 @@ jobs:
shell: bash
run: |
set -e
- sudo make test-no-interfaces
+ sudo make test-no-interfaces-no-vpp
+ if [[ $? == 0 ]]; then
+ echo "exit_code=success" >> $GITHUB_OUTPUT
+ else
+ echo "exit_code=fail" >> $GITHUB_OUTPUT
+ fi
+
+ test_smoketest_cli_vpp:
+ needs: build_iso
+ runs-on: ubuntu-24.04
+ timeout-minutes: 90
+ container:
+ image: vyos/vyos-build:current
+ options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 --privileged
+ outputs:
+ exit_code: ${{ steps.test.outputs.exit_code }}
+ steps:
+ # We need the test script from vyos-build repo
+ - name: Clone vyos-build source code
+ uses: actions/checkout@v4
+ with:
+ repository: vyos/vyos-build
+ - uses: actions/download-artifact@v4
+ with:
+ name: vyos-${{ needs.build_iso.outputs.build_version }}
+ path: build
+ - name: VyOS CLI smoketests VPP
+ id: test
+ shell: bash
+ run: |
+ set -e
+ sudo make test-vpp
if [[ $? == 0 ]]; then
echo "exit_code=success" >> $GITHUB_OUTPUT
else
@@ -161,6 +195,37 @@ jobs:
echo "exit_code=fail" >> $GITHUB_OUTPUT
fi
+ test_config_load_vpp:
+ needs: build_iso
+ runs-on: ubuntu-24.04
+ timeout-minutes: 90
+ container:
+ image: vyos/vyos-build:current
+ options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 --privileged
+ outputs:
+ exit_code: ${{ steps.test.outputs.exit_code }}
+ steps:
+ # We need the test script from vyos-build repo
+ - name: Clone vyos-build source code
+ uses: actions/checkout@v4
+ with:
+ repository: vyos/vyos-build
+ - uses: actions/download-artifact@v4
+ with:
+ name: vyos-${{ needs.build_iso.outputs.build_version }}
+ path: build
+ - name: VyOS config load tests VPP
+ id: test
+ shell: bash
+ run: |
+ set -e
+ sudo make testcvpp
+ if [[ $? == 0 ]]; then
+ echo "exit_code=success" >> $GITHUB_OUTPUT
+ else
+ echo "exit_code=fail" >> $GITHUB_OUTPUT
+ fi
+
test_raid1_install:
needs: build_iso
runs-on: ubuntu-24.04
@@ -226,8 +291,10 @@ jobs:
result:
needs:
- test_smoketest_cli
+ - test_smoketest_cli_vpp
- test_interfaces_cli
- test_config_load
+ - test_config_load_vpp
- test_raid1_install
- test_encrypted_config_tpm
runs-on: ubuntu-24.04
@@ -246,8 +313,10 @@ jobs:
[CI logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
* CLI Smoketests (no interfaces) ${{ needs.test_smoketest_cli.outputs.exit_code == 'success' && '👍 passed' || '❌ failed' }}
+ * CLI Smoketests VPP ${{ needs.test_smoketest_cli_vpp.outputs.exit_code == 'success' && '👍 passed' || '❌ failed' }}
* CLI Smoketests (interfaces only) ${{ needs.test_interfaces_cli.outputs.exit_code == 'success' && '👍 passed' || '❌ failed' }}
* Config tests ${{ needs.test_config_load.outputs.exit_code == 'success' && '👍 passed' || '❌ failed' }}
+ * Config tests VPP ${{ needs.test_config_load_vpp.outputs.exit_code == 'success' && '👍 passed' || '❌ failed' }}
* RAID1 tests ${{ needs.test_raid1_install.outputs.exit_code == 'success' && '👍 passed' || '❌ failed' }}
* TPM tests ${{ needs.test_encrypted_config_tpm.outputs.exit_code == 'success' && '👍 passed' || '❌ failed' }}
diff --git a/.github/workflows/pr-mirror-repo-sync.yml b/.github/workflows/pr-mirror-repo-sync.yml
new file mode 100644
index 000000000..88fb563c7
--- /dev/null
+++ b/.github/workflows/pr-mirror-repo-sync.yml
@@ -0,0 +1,35 @@
+name: PR Mirror and Repo Sync
+
+on:
+ pull_request_target:
+ types: [closed]
+ branches: [current]
+ workflow_dispatch:
+ inputs:
+ sync_branch:
+ description: 'Branch to mirror'
+ required: true
+ default: 'current'
+ type: choice
+ options:
+ - current
+
+permissions:
+ pull-requests: write
+ contents: write
+ issues: write
+
+jobs:
+ call-pr-mirror-repo-sync:
+ if: |
+ github.repository_owner == 'vyos' &&
+ (
+ github.event_name == 'workflow_dispatch' ||
+ (github.event_name == 'pull_request_target' && github.event.pull_request.merged == true)
+ )
+ uses: vyos/.github/.github/workflows/pr-mirror-repo-sync.yml@current
+ with:
+ sync_branch: ${{ github.event.inputs.sync_branch || 'current' }}
+ secrets:
+ PAT: ${{ secrets.PAT }}
+ REMOTE_OWNER: ${{ secrets.REMOTE_OWNER }}
diff --git a/.github/workflows/trigger-pr-mirror-repo-sync.yml b/.github/workflows/trigger-pr-mirror-repo-sync.yml
deleted file mode 100644
index f74895987..000000000
--- a/.github/workflows/trigger-pr-mirror-repo-sync.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-name: Trigger Mirror PR and Repo Sync
-on:
- pull_request_target:
- types:
- - closed
- branches:
- - current
-
-jobs:
- call-trigger-mirror-pr-repo-sync:
- if: github.repository_owner == 'vyos' && github.event.pull_request.merged == true
- uses: vyos/.github/.github/workflows/trigger-pr-mirror-repo-sync.yml@current
- secrets: inherit