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@hauke-m.de>
This commit is contained in:
parent
7c406a5f08
commit
08f5283392
|
@ -6,6 +6,8 @@ on:
|
||||||
target:
|
target:
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
build_toolchain:
|
||||||
|
type: boolean
|
||||||
include_feeds:
|
include_feeds:
|
||||||
type: boolean
|
type: boolean
|
||||||
build_full:
|
build_full:
|
||||||
|
@ -109,6 +111,7 @@ jobs:
|
||||||
./scripts/feeds install -a
|
./scripts/feeds install -a
|
||||||
|
|
||||||
- name: Parse toolchain file
|
- name: Parse toolchain file
|
||||||
|
if: inputs.build_toolchain == false
|
||||||
working-directory: openwrt
|
working-directory: openwrt
|
||||||
run: |
|
run: |
|
||||||
TOOLCHAIN_STRING="$(curl "https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" \
|
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"
|
echo "TOOLCHAIN_SHA256=$TOOLCHAIN_SHA256" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
- name: Cache external toolchain
|
- name: Cache external toolchain
|
||||||
|
if: inputs.build_toolchain == false
|
||||||
id: cache-external-toolchain
|
id: cache-external-toolchain
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
|
@ -135,7 +139,7 @@ jobs:
|
||||||
ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}-
|
ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}-
|
||||||
|
|
||||||
- name: Download external toolchain
|
- 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}"
|
shell: su buildbot -c "sh -e {0}"
|
||||||
working-directory: openwrt
|
working-directory: openwrt
|
||||||
run: |
|
run: |
|
||||||
|
@ -162,6 +166,7 @@ jobs:
|
||||||
echo CONFIG_ALL=y >> .config
|
echo CONFIG_ALL=y >> .config
|
||||||
|
|
||||||
- name: Configure external toolchain
|
- name: Configure external toolchain
|
||||||
|
if: inputs.build_toolchain == false
|
||||||
shell: su buildbot -c "sh -e {0}"
|
shell: su buildbot -c "sh -e {0}"
|
||||||
working-directory: openwrt
|
working-directory: openwrt
|
||||||
run: |
|
run: |
|
||||||
|
@ -174,6 +179,20 @@ jobs:
|
||||||
--overwrite-config \
|
--overwrite-config \
|
||||||
--config ${{ env.TARGET }}/${{ env.SUBTARGET }}
|
--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
|
- name: Show configuration
|
||||||
shell: su buildbot -c "sh -e {0}"
|
shell: su buildbot -c "sh -e {0}"
|
||||||
working-directory: openwrt
|
working-directory: openwrt
|
||||||
|
|
Loading…
Reference in New Issue