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

LEDE Commits lede-commits at lists.infradead.org
Sun Dec 4 07:37:41 PST 2022


ansuel pushed a commit to openwrt/openwrt.git, branch openwrt-21.02:
https://git.openwrt.org/b0e6bce6347936d208eb60ce17f972407c7fe440

commit b0e6bce6347936d208eb60ce17f972407c7fe440
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>
    (cherry picked from commit 08f5283392674fe874c7f441128319263ce0d171)
---
 .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