type: boolean
build_full:
type: boolean
+ build_kernel:
+ type: boolean
build_all_modules:
type: boolean
build_all_kmods:
jobs:
setup_build:
- name: Setup build
+ name: Setup build ${{ inputs.target }}
runs-on: ubuntu-latest
outputs:
owner_lc: ${{ steps.lower_owner.outputs.owner_lc }}
echo "container_tag=$CONTAINER_TAG" >> $GITHUB_OUTPUT
build:
- name: Build with external toolchain
+ name: Build ${{ inputs.target }}
needs: setup_build
runs-on: ubuntu-latest
--overwrite-config \
--config ${{ env.TARGET }}/${{ env.SUBTARGET }}
+ - name: Adapt external sdk to external toolchain format
+ if: inputs.build_toolchain == false && steps.parse-toolchain.outputs.toolchain-type == 'external_sdk' && steps.cache-external-toolchain.outputs.cache-hit != 'true'
+ shell: su buildbot -c "sh -e {0}"
+ working-directory: openwrt
+ run: |
+ TOOLCHAIN_DIR=${{ env.TOOLCHAIN_FILE }}/staging_dir/$(ls ${{ env.TOOLCHAIN_FILE }}/staging_dir | grep toolchain)
+ TOOLCHAIN_BIN=$TOOLCHAIN_DIR/bin
+ OPENWRT_DIR=$(pwd)
+
+ # Find target name from toolchain info.mk
+ GNU_TARGET_NAME=$(cat $TOOLCHAIN_DIR/info.mk | grep TARGET_CROSS | sed 's/^TARGET_CROSS=\(.*\)-$/\1/')
+
+ cd $TOOLCHAIN_BIN
+
+ # Revert sdk wrapper scripts applied to all the bins
+ for app in $(find . -name "*.bin"); do
+ TARGET_APP=$(echo $app | sed 's/\.\/\.\(.*\)\.bin/\1/')
+ rm $TARGET_APP
+ mv .$TARGET_APP.bin $TARGET_APP
+ done
+
+ # Setup the wrapper script in the sdk toolchain dir simulating an external toolchain build
+ cp $OPENWRT_DIR/target/toolchain/files/wrapper.sh $GNU_TARGET_NAME-wrapper.sh
+ for app in cc gcc g++ c++ cpp ld as ; do
+ [ -f $GNU_TARGET_NAME-$app ] && mv $GNU_TARGET_NAME-$app $GNU_TARGET_NAME-$app.bin
+ ln -sf $GNU_TARGET_NAME-wrapper.sh $GNU_TARGET_NAME-$app
+ done
+
- 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}"
run: make toolchain/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh
- name: Build Kernel
+ if: inputs.build_kernel == true
shell: su buildbot -c "sh -e {0}"
working-directory: openwrt
run: make target/compile -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh
- name: Build Kernel Kmods
+ if: inputs.build_kernel == true
shell: su buildbot -c "sh -e {0}"
working-directory: openwrt
run: make package/linux/compile -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh