From 5fd7d9228c1741f83f828b95094e37b63ece1034 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Fri, 15 Nov 2024 08:32:11 +0000 Subject: [PATCH 1/2] label-kernel: make it reusable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In some cases it might be handy to quickly smoke test certain types of changes, where it usually doesn't make sense to build everything, so lets allow that with reusable label-kernel workflow, which can be easily reusable by just passing target/subtarget/testing inputs. References: https://github.com/openwrt/openwrt/pull/16784 Signed-off-by: Petr Štetiar --- .github/workflows/label-kernel.yml | 36 ++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/.github/workflows/label-kernel.yml b/.github/workflows/label-kernel.yml index b4859882..7c252cad 100644 --- a/.github/workflows/label-kernel.yml +++ b/.github/workflows/label-kernel.yml @@ -3,10 +3,17 @@ name: Build kernel and check patches for target specified in labels on: workflow_call: + inputs: + target: + type: string + subtarget: + type: string + testing: + type: boolean jobs: set_target: - if: startsWith(github.event.label.name, 'ci:kernel:') + if: startsWith(github.event.label.name, 'ci:kernel:') || inputs.target != '' name: Set target runs-on: ubuntu-latest outputs: @@ -22,9 +29,30 @@ jobs: env: CI_EVENT_LABEL_NAME: ${{ github.event.label.name }} run: | - echo "$CI_EVENT_LABEL_NAME" | sed -n 's/ci:kernel:\([^:]*\):\([^:]*\):*\([^:]*\)$/target=\1/p' | tee --append $GITHUB_OUTPUT - echo "$CI_EVENT_LABEL_NAME" | sed -n 's/ci:kernel:\([^:]*\):\([^:]*\):*\([^:]*\)$/subtarget=\2/p' | tee --append $GITHUB_OUTPUT - echo "$CI_EVENT_LABEL_NAME" | sed -n 's/ci:kernel:\([^:]*\):\([^:]*\):*\([^:]*\)$/testing=\3/p' | tee --append $GITHUB_OUTPUT + if [ -n "${{ inputs.target}}" ]; then + target="${{ inputs.target }}" + else + target=$(echo "$CI_EVENT_LABEL_NAME" | sed -n 's/ci:kernel:\([^:]*\):\([^:]*\):*\([^:]*\)$/\1/p') + fi + + if [ -n "${{ inputs.subtarget}}" ]; then + subtarget="${{ inputs.subtarget }}" + else + subtarget=$(echo "$CI_EVENT_LABEL_NAME" | sed -n 's/ci:kernel:\([^:]*\):\([^:]*\):*\([^:]*\)$/\2/p') + fi + + if [ -n "${{ inputs.testing}}" ]; then + testing="${{ inputs.testing }}" + else + testing=$(echo "$CI_EVENT_LABEL_NAME" | sed -n 's/ci:kernel:\([^:]*\):\([^:]*\):*\([^:]*\)$/\3/p') + fi + + echo "Setting target as $target, subtarget as $subtarget, testing as $testing" + { + echo "target=$target" + echo "subtarget=$subtarget" + echo "testing=$testing" + } >> "$GITHUB_OUTPUT" - name: Set targets id: set_target From 4694f67a9f20a361a50e80eeaa1cef4ada5eee59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Fri, 15 Nov 2024 08:32:45 +0000 Subject: [PATCH 2/2] label-target: make it reusable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In some cases it might be handy to quickly smoke test certain types of changes, where it usually doesn't make sense to build everything, so lets allow that with reusable label-target workflow, which can be easily reusable by just passing target/subtarget inputs. References: https://github.com/openwrt/openwrt/pull/16784 Signed-off-by: Petr Štetiar --- .github/workflows/label-target.yml | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/.github/workflows/label-target.yml b/.github/workflows/label-target.yml index f32d79e7..595a6454 100644 --- a/.github/workflows/label-target.yml +++ b/.github/workflows/label-target.yml @@ -3,10 +3,15 @@ name: Build check target specified in labels on: workflow_call: + inputs: + target: + type: string + subtarget: + type: string jobs: set_target: - if: startsWith(github.event.label.name, 'ci:target:') + if: startsWith(github.event.label.name, 'ci:target:') || inputs.target != '' name: Set target runs-on: ubuntu-latest outputs: @@ -19,8 +24,23 @@ jobs: env: CI_EVENT_LABEL_NAME: ${{ github.event.label.name }} run: | - echo "$CI_EVENT_LABEL_NAME" | sed -n 's/.*:\(.*\):\(.*\)$/target=\1/p' | tee --append $GITHUB_OUTPUT - echo "$CI_EVENT_LABEL_NAME" | sed -n 's/.*:\(.*\):\(.*\)$/subtarget=\2/p' | tee --append $GITHUB_OUTPUT + if [ -n "${{ inputs.target}}" ]; then + target="${{ inputs.target }}" + else + target=$(echo "$CI_EVENT_LABEL_NAME" | sed -n 's/.*:\(.*\):\(.*\)$/\1/p') + fi + + if [ -n "${{ inputs.subtarget}}" ]; then + subtarget="${{ inputs.subtarget }}" + else + subtarget=$(echo "$CI_EVENT_LABEL_NAME" | sed -n 's/.*:\(.*\):\(.*\)$/\2/p') + fi + + echo "Setting target as $target, subtarget as $subtarget" + { + echo "target=$target" + echo "subtarget=$subtarget" + } >> "$GITHUB_OUTPUT" build_target: name: Build target