aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
authorChristian Marangi <ansuelsmth@gmail.com>2022-11-27 19:53:08 +0100
committerJosef Schlehofer <pepe.schlehofer@gmail.com>2022-12-04 16:28:23 +0100
commit40536320ef2f30e3872ba2e1748efc3c8cb0e06d (patch)
tree31913c37966b574af23f1bb5dce6c0910ecc4ed3 /.github/workflows/build.yml
parent5bc5df10d813b26b0ce5a816cfcfc501320229c6 (diff)
downloadupstream-40536320ef2f30e3872ba2e1748efc3c8cb0e06d.tar.gz
upstream-40536320ef2f30e3872ba2e1748efc3c8cb0e06d.tar.bz2
upstream-40536320ef2f30e3872ba2e1748efc3c8cb0e06d.zip
CI: build: add support for per branch tools container
Add support in build shared workflow for per branch tools container. With pr the target branch is parsed and the right container is used. 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) Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit abe8a4824210966e0899724bf4561a89216a1e36)
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml29
1 files changed, 28 insertions, 1 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 347eb5a90c..510ff6a879 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -31,6 +31,7 @@ jobs:
outputs:
owner_lc: ${{ steps.lower_owner.outputs.owner_lc }}
ccache_hash: ${{ steps.ccache_hash.outputs.ccache_hash }}
+ container_tag: ${{ steps.determine_tools_container.outputs.container_tag }}
steps:
- name: Checkout
@@ -50,12 +51,38 @@ jobs:
| md5sum | awk '{ print $1 }')
echo "ccache_hash=$CCACHE_HASH" >> $GITHUB_OUTPUT
+ # 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
+ # For local test to use the correct container for stable release testing
+ # you need to use for the branch name a prefix of openwrt-[0-9][0-9].[0-9][0-9]-
+ - name: Determine tools container tag
+ id: determine_tools_container
+ run: |
+ CONTAINER_TAG=latest
+ if [ -n "${{ github.base_ref }}" ]; then
+ if echo "${{ github.base_ref }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then
+ CONTAINER_TAG="${{ github.base_ref }}"
+ fi
+ elif [ ${{ 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 use tools:$CONTAINER_TAG"
+ echo "container_tag=$CONTAINER_TAG" >> $GITHUB_OUTPUT
+
build:
name: Build with external toolchain
needs: setup_build
runs-on: ubuntu-latest
- container: ghcr.io/${{ needs.setup_build.outputs.owner_lc }}/tools:latest
+ container: ghcr.io/${{ needs.setup_build.outputs.owner_lc }}/tools:${{ needs.setup_build.outputs.container_tag }}
permissions:
contents: read