[openwrt/openwrt] CI: Allow building with internal toolchain

LEDE Commits lede-commits at lists.infradead.org
Sat Dec 3 05:35:13 PST 2022


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/08f5283392674fe874c7f441128319263ce0d171

commit 08f5283392674fe874c7f441128319263ce0d171
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Nov 5 14:27:11 2022 +0100

    CI: Allow building with internal toolchain
    
    This adds an option to build with internal toolchain. This can be used
    to build targets which are currently not build by the OpenWrt build bots
    and which needs their own toolchain build for every build.
    
    Building the toolchain takes about 30 minutes compared to using the
    external toolchain which takes some seconds.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .github/workflows/build.yml | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4cc1116d58..b29698a774 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -6,6 +6,8 @@ on:
       target:
         required: true
         type: string
+      build_toolchain:
+        type: boolean
       include_feeds:
         type: boolean
       build_full:
@@ -109,6 +111,7 @@ jobs:
           ./scripts/feeds install -a
 
       - name: Parse toolchain file
+        if: inputs.build_toolchain == false
         working-directory: openwrt
         run: |
           TOOLCHAIN_STRING="$(curl "https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" \
@@ -120,6 +123,7 @@ jobs:
           echo "TOOLCHAIN_SHA256=$TOOLCHAIN_SHA256" >> "$GITHUB_ENV"
 
       - name: Cache external toolchain
+        if: inputs.build_toolchain == false
         id: cache-external-toolchain
         uses: actions/cache at v3
         with:
@@ -135,7 +139,7 @@ jobs:
             ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}-
 
       - name: Download external toolchain
-        if: steps.cache-external-toolchain.outputs.cache-hit != 'true'
+        if: inputs.build_toolchain == false && steps.cache-external-toolchain.outputs.cache-hit != 'true'
         shell: su buildbot -c "sh -e {0}"
         working-directory: openwrt
         run: |
@@ -162,6 +166,7 @@ jobs:
           echo CONFIG_ALL=y >> .config
 
       - name: Configure external toolchain
+        if: inputs.build_toolchain == false
         shell: su buildbot -c "sh -e {0}"
         working-directory: openwrt
         run: |
@@ -174,6 +179,20 @@ jobs:
             --overwrite-config \
             --config ${{ env.TARGET }}/${{ env.SUBTARGET }}
 
+      - name: Configure internal toolchain
+        if: inputs.build_toolchain == true
+        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
+
+          echo "CONFIG_TARGET_${{ env.TARGET }}=y" >> .config
+          echo "CONFIG_TARGET_${{ env.TARGET }}_${{ env.SUBTARGET }}=y" >> .config
+
+          make defconfig
+
       - name: Show configuration
         shell: su buildbot -c "sh -e {0}"
         working-directory: openwrt




More information about the lede-commits mailing list