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>
target:
required: true
type: string
target:
required: true
type: string
+ build_toolchain:
+ type: boolean
include_feeds:
type: boolean
build_full:
include_feeds:
type: boolean
build_full:
./scripts/feeds install -a
- name: Parse toolchain file
./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" \
working-directory: openwrt
run: |
TOOLCHAIN_STRING="$(curl "https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" \
echo "TOOLCHAIN_SHA256=$TOOLCHAIN_SHA256" >> "$GITHUB_ENV"
- name: Cache external toolchain
echo "TOOLCHAIN_SHA256=$TOOLCHAIN_SHA256" >> "$GITHUB_ENV"
- name: Cache external toolchain
+ if: inputs.build_toolchain == false
id: cache-external-toolchain
uses: actions/cache@v3
with:
id: cache-external-toolchain
uses: actions/cache@v3
with:
ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}-
- name: Download external toolchain
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: |
shell: su buildbot -c "sh -e {0}"
working-directory: openwrt
run: |
echo CONFIG_ALL=y >> .config
- name: Configure external toolchain
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: |
shell: su buildbot -c "sh -e {0}"
working-directory: openwrt
run: |
--overwrite-config \
--config ${{ env.TARGET }}/${{ env.SUBTARGET }}
--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
- name: Show configuration
shell: su buildbot -c "sh -e {0}"
working-directory: openwrt