summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Marangi2022-11-27 18:45:38 +0000
committerJosef Schlehofer2022-12-04 15:28:18 +0000
commit5bc5df10d813b26b0ce5a816cfcfc501320229c6 (patch)
treeb9c1d6c9f0dc1807892c2756577ccc18c7b24175
parent0943f4dc99f3e6498415f7700023c61ee3880eee (diff)
downloadopenwrt-5bc5df10d813b26b0ce5a816cfcfc501320229c6.tar.gz
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@gmail.com> (cherry picked from commit 75550771ae76fbcab4160e10b73287f918727384)
-rw-r--r--.github/workflows/tools.yml27
1 files changed, 26 insertions, 1 deletions
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@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