aboutsummaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorChristian Marangi <ansuelsmth@gmail.com>2022-11-28 16:12:13 +0100
committerChristian Marangi <ansuelsmth@gmail.com>2022-12-04 17:37:01 +0100
commit9db78a7e8626913c13eb90225556358512ed5ca2 (patch)
treee7afd4128c05eda93524c50855475dd814e4dad7 /.github
parent47519a574c9c81bbbaf0338f37d47abf872ccab0 (diff)
downloadupstream-9db78a7e8626913c13eb90225556358512ed5ca2.tar.gz
upstream-9db78a7e8626913c13eb90225556358512ed5ca2.tar.bz2
upstream-9db78a7e8626913c13eb90225556358512ed5ca2.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)
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build.yml41
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}"