diff options
author | Christian Marangi <ansuelsmth@gmail.com> | 2022-11-28 16:12:13 +0100 |
---|---|---|
committer | Josef Schlehofer <pepe.schlehofer@gmail.com> | 2022-12-04 16:28:31 +0100 |
commit | 006e52545d1421affba9c993c70996e0f9f6e596 (patch) | |
tree | 5e362bc4f101ad951e3c9cd842fd43f6dac7f387 | |
parent | 69c0c3c2f904279d1c687cd7a42d82987c99b3e7 (diff) | |
download | upstream-006e52545d1421affba9c993c70996e0f9f6e596.tar.gz upstream-006e52545d1421affba9c993c70996e0f9f6e596.tar.bz2 upstream-006e52545d1421affba9c993c70996e0f9f6e596.zip |
CI: build: add support to fallback to sdk for external toolchain
Add support to use sdk as external toolchain if the packaged external
toolchain tar is not found on openwrt servers for build shared workflow.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit b59ac2a7d0ff427419e86bd38dea3d8910dd7926)
-rw-r--r-- | .github/workflows/build.yml | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 909b849731..511d9596fa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -143,6 +143,7 @@ jobs: - name: Parse toolchain file if: inputs.build_toolchain == false + id: parse-toolchain working-directory: openwrt run: | TOOLCHAIN_PATH=snapshots @@ -169,22 +170,32 @@ jobs: fi fi - TOOLCHAIN_STRING="$(curl "https://downloads.cdn.openwrt.org/$TOOLCHAIN_PATH/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" \ - | grep ".*openwrt-toolchain.*tar.xz")" - TOOLCHAIN_FILE=$(echo "$TOOLCHAIN_STRING" | sed -n -e 's/.*\(openwrt-toolchain.*\).tar.xz/\1/p') - TOOLCHAIN_SHA256=$(echo "$TOOLCHAIN_STRING" | cut -d ' ' -f 1) + SUMS_FILE="https://downloads.cdn.openwrt.org/$TOOLCHAIN_PATH/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" + if curl $SUMS_FILE | grep -q ".*openwrt-toolchain.*tar.xz"; then + TOOLCHAIN_STRING="$( curl $SUMS_FILE | grep ".*openwrt-toolchain.*tar.xz")" + TOOLCHAIN_FILE=$(echo "$TOOLCHAIN_STRING" | sed -n -e 's/.*\(openwrt-toolchain.*\).tar.xz/\1/p') + TOOLCHAIN_SHA256=$(echo "$TOOLCHAIN_STRING" | cut -d ' ' -f 1) + + echo "toolchain-type=external_toolchain" >> $GITHUB_OUTPUT + elif curl $SUMS_FILE | grep -q ".*openwrt-sdk.*tar.xz"; then + TOOLCHAIN_STRING="$( curl $SUMS_FILE | grep ".*openwrt-sdk.*tar.xz")" + TOOLCHAIN_FILE=$(echo "$TOOLCHAIN_STRING" | sed -n -e 's/.*\(openwrt-sdk.*\).tar.xz/\1/p') + TOOLCHAIN_SHA256=$(echo "$TOOLCHAIN_STRING" | cut -d ' ' -f 1) + + echo "toolchain-type=external_sdk" >> $GITHUB_OUTPUT + fi echo "TOOLCHAIN_FILE=$TOOLCHAIN_FILE" >> "$GITHUB_ENV" echo "TOOLCHAIN_SHA256=$TOOLCHAIN_SHA256" >> "$GITHUB_ENV" echo "TOOLCHAIN_PATH=$TOOLCHAIN_PATH" >> "$GITHUB_ENV" - - name: Cache external toolchain + - name: Cache external toolchain/sdk if: inputs.build_toolchain == false id: cache-external-toolchain uses: actions/cache@v3 with: path: openwrt/${{ env.TOOLCHAIN_FILE }} - key: ${{ env.TOOLCHAIN_FILE }}-${{ env.TOOLCHAIN_SHA256 }} + key: ${{ env.TOOLCHAIN_FILE }}-${{ steps.parse-toolchain.outputs.toolchain-type }}-${{ env.TOOLCHAIN_SHA256 }} - name: Cache ccache uses: actions/cache@v3 @@ -194,7 +205,7 @@ jobs: restore-keys: | ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}- - - name: Download external toolchain + - name: Download external toolchain/sdk if: inputs.build_toolchain == false && steps.cache-external-toolchain.outputs.cache-hit != 'true' shell: su buildbot -c "sh -e {0}" working-directory: openwrt @@ -238,7 +249,7 @@ jobs: echo CONFIG_TARGET_ALL_PROFILES=y >> .config - name: Configure external toolchain - if: inputs.build_toolchain == false + if: inputs.build_toolchain == false && steps.parse-toolchain.outputs.toolchain-type == 'external_toolchain' shell: su buildbot -c "sh -e {0}" working-directory: openwrt run: | @@ -251,6 +262,20 @@ jobs: --overwrite-config \ --config ${{ env.TARGET }}/${{ env.SUBTARGET }} + - name: Configure external toolchain with sdk + if: inputs.build_toolchain == false && steps.parse-toolchain.outputs.toolchain-type == 'external_sdk' + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + echo CONFIG_DEVEL=y >> .config + echo CONFIG_AUTOREMOVE=y >> .config + echo CONFIG_CCACHE=y >> .config + + ./scripts/ext-toolchain.sh \ + --toolchain ${{ env.TOOLCHAIN_FILE }}/staging_dir/toolchain-* \ + --overwrite-config \ + --config ${{ env.TARGET }}/${{ env.SUBTARGET }} + - name: Configure internal toolchain if: inputs.build_toolchain == true shell: su buildbot -c "sh -e {0}" |