[openwrt/openwrt] CI: tools: support per branch tools container

LEDE Commits lede-commits at lists.infradead.org
Sun Dec 4 07:03:25 PST 2022


ansuel pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/75550771ae76fbcab4160e10b73287f918727384

commit 75550771ae76fbcab4160e10b73287f918727384
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Sun Nov 27 19:45:38 2022 +0100

    CI: tools: support per branch tools container
    
    Add support to push per branch container tools.
    For anything not official stick to latest tag that correspond to test
    run from master.
    
    If we are testing something for one of the openwrt stable branch, parse
    the branch name or the tag and push dedicated tools containers.
    
    To use the stable container for local testing the branch needs to have
    the prefix openwrt-[0-9][0-9].[0-9][0-9] (example openwrt-21.02-fixup)
    
    Any branch that will match this pattern openwrt-[0-9][0-9].[0-9][0-9]
    will refresh the tools container with the matching tag.
    (example branch openwrt-22.03 -> tools:openwrt-22.03)
    (example branch openwrt-22.03-test -> tools:openwrt-22.03)
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 .github/workflows/tools.yml | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml
index def01678c6..304b5f7d62 100644
--- a/.github/workflows/tools.yml
+++ b/.github/workflows/tools.yml
@@ -174,6 +174,31 @@ jobs:
         run: |
           echo "OWNER_LC=${OWNER,,}" >> "$GITHUB_ENV"
 
+      # Per branch tools container tag
+      # By default stick to latest
+      # For official test targetting openwrt stable branch
+      # Get the branch or parse the tag and push dedicated tools containers
+      # Any branch that will match this pattern openwrt-[0-9][0-9].[0-9][0-9]
+      # will refresh the tools container with the matching tag.
+      # (example branch openwrt-22.03 -> tools:openwrt-22.03)
+      # (example branch openwrt-22.03-test -> tools:openwrt-22.03)
+      - name: Determine tools container tag
+        run: |
+          CONTAINER_TAG=latest
+
+          if [ ${{ github.ref_type }} == "branch" ]; then
+            if echo "${{ github.ref_name }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then
+              CONTAINER_TAG="$(echo ${{ github.ref_name }} | sed 's/^\(openwrt-[0-9][0-9]\.[0-9][0-9]\).*/\1/')"
+            fi
+          elif [ ${{ github.ref_type }} == "tag" ]; then
+            if echo "${{ github.ref_name }}" | grep -q -E 'v[0-9][0-9]\.[0-9][0-9]\..+'; then
+              CONTAINER_TAG=openwrt-"$(echo ${{ github.ref_name }} | sed 's/v\([0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')"
+            fi
+          fi
+
+          echo "Tools container to push tools:$CONTAINER_TAG"
+          echo "CONTAINER_TAG=$CONTAINER_TAG" >> "$GITHUB_ENV"
+
       - name: Checkout
         uses: actions/checkout at v3
         with:
@@ -197,5 +222,5 @@ jobs:
         with:
           context: openwrt
           push: true
-          tags: ghcr.io/${{ env.OWNER_LC }}/tools:latest
+          tags: ghcr.io/${{ env.OWNER_LC }}/tools:${{ env.CONTAINER_TAG }}
           file: openwrt/.github/workflows/Dockerfile.tools




More information about the lede-commits mailing list