[LTP] [PATCH v6 3/4] ci: add ci-patchwork-trigger workflow
Andrea Cervesato
andrea.cervesato@suse.de
Tue Apr 15 12:00:03 CEST 2025
From: Andrea Cervesato <andrea.cervesato@suse.com>
Add ci-patchwork-trigger workflow that is meant to run every 30 minutes,
checking for new untested LTP patches in the Mailing List and running
the ci-docker-build workflow on them.
Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
---
.github/workflows/ci-patchwork-trigger.yml | 65 ++++++++++++++++++++++++++++++
1 file changed, 65 insertions(+)
diff --git a/.github/workflows/ci-patchwork-trigger.yml b/.github/workflows/ci-patchwork-trigger.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0938aed5ad0df8af8e2e575283b56475ff219ff3
--- /dev/null
+++ b/.github/workflows/ci-patchwork-trigger.yml
@@ -0,0 +1,65 @@
+# Copyright (c) 2025 Andrea Cervesato <andrea.cervesato@suse.com>
+
+name: "Patchwork checker"
+on:
+ push:
+ schedule:
+ - cron: '*/15 * * * 1-5'
+ - cron: '*/45 * * * 6,0'
+
+env:
+ PATCHWORK_CI_FILE: patchwork-ci-output.txt
+
+jobs:
+ checker:
+ if: ${{ github.repository == 'linux-test-project/ltp' }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Git checkout
+ uses: actions/checkout@v1
+
+ - name: Verify new patches
+ id: verify
+ run: |
+ ./ci/tools/patchwork.sh verify > "$PATCHWORK_CI_FILE"
+ cat "$PATCHWORK_CI_FILE"
+
+ - name: Run tests
+ if: success()
+ uses: actions/github-script@v7
+ with:
+ script: |
+ const fs = require('fs');
+
+ const output = fs.readFileSync(process.env.PATCHWORK_CI_FILE, 'utf8');
+ if (output.length === 0) {
+ console.log("'patchwork-ci.sh verify' output is empty");
+ return;
+ }
+
+ const lines = output.split('\n');
+ if (lines.length === 0) {
+ console.log("No new patch-series found");
+ return;
+ }
+
+ for (const data of lines) {
+ const [series_id, series_mbox] = data.split('|');
+ if (series_id.length === 0 || series_mbox.length === 0) {
+ console.log(`Malformed data: ${data}`);
+ continue;
+ }
+
+ const response = await github.rest.actions.createWorkflowDispatch({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ ref: context.ref,
+ workflow_id: 'ci-docker-build.yml',
+ inputs: {
+ SERIES_ID: series_id,
+ SERIES_MBOX: series_mbox,
+ }
+ });
+
+ console.log(response);
+ }
--
2.43.0
More information about the ltp
mailing list