diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 364576a..8d0e297 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -175,17 +175,30 @@ jobs: cd $BUILD_ROOT MAKE_JOBS=$(($(nproc)+1)) echo "$MAKE_JOBS thread compile" + # init build config ./xmake.sh -I -t $TARGET + G_DEVICE_NAME=$( grep -so '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' ) + [ -z "$G_DEVICE_NAME" ] && exit 31 + G_BOARD_NAME=$( grep -so '^CONFIG_TARGET_BOARD=.*' .config | cut -d'"' -f2 ) + [ -z "$G_BOARD_NAME" ] && exit 32 + G_SUBTARGET_NAME=$( grep -so '^CONFIG_TARGET_SUBTARGET=.*' .config | cut -d'"' -f2 ) + [ -z "$G_SUBTARGET_NAME" ] && exit 33 + VERMAGIC_LIST="vermagic-$G_BOARD_NAME-$G_SUBTARGET_NAME-*.list" + if [ $(find . -maxdepth 1 -name "$VERMAGIC_LIST" | wc -l) = "0" ]; then + ./vermagic_update.sh $G_BOARD_NAME $G_SUBTARGET_NAME + fi + if [ $(find . -maxdepth 1 -name "$VERMAGIC_LIST" | wc -l) = "0" ]; then + exit 41 + fi + # run build [ "$FAKE_BUILD" != "true" ] && make -j $MAKE_JOBS download world + # process results FILE_DATE=$(date --utc +'%y%m%d') - DEVICE_NAME=$( grep -so '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' ) - BOARD_NAME=$( grep -so '^CONFIG_TARGET_BOARD=.*' .config | cut -d'"' -f2 ) - SUBTARGET_NAME=$( grep -so '^CONFIG_TARGET_SUBTARGET=.*' .config | cut -d'"' -f2 ) - OUT_DIR=$BUILD_ROOT/bin/targets/$BOARD_NAME/$SUBTARGET_NAME + OUT_DIR=$BUILD_ROOT/bin/targets/$G_BOARD_NAME/$G_SUBTARGET_NAME if [ "$FAKE_BUILD" = "true" ]; then mkdir -p logs mkdir -p $OUT_DIR - echo "$BOARD_NAME $SUBTARGET_NAME $DEVICE_NAME" > "$OUT_DIR/$DEVICE_NAME.txt" + echo "$G_BOARD_NAME $G_SUBTARGET_NAME $G_DEVICE_NAME" > "$OUT_DIR/$G_DEVICE_NAME.txt" touch "$OUT_DIR/kernel-debug.tar.zst" ls -la BLD_VER=$FW_VER @@ -198,9 +211,9 @@ jobs: exit 100 fi echo "status=success" >> $GITHUB_OUTPUT - echo "DEVICE_NAME=$DEVICE_NAME" >> $GITHUB_ENV - echo "BOARD_NAME=$BOARD_NAME" >> $GITHUB_ENV - echo "SUBTARGET_NAME=$SUBTARGET_NAME" >> $GITHUB_ENV + echo "DEVICE_NAME=$G_DEVICE_NAME" >> $GITHUB_ENV + echo "BOARD_NAME=$G_BOARD_NAME" >> $GITHUB_ENV + echo "SUBTARGET_NAME=$G_SUBTARGET_NAME" >> $GITHUB_ENV echo "BLD_VER=$BLD_VER" >> $GITHUB_ENV echo "OUT_DIR=$OUT_DIR" >> $GITHUB_ENV echo "FILE_DATE=$FILE_DATE" >> $GITHUB_ENV