mirror of
https://github.com/openwrt-xiaomi/builder.git
synced 2026-01-01 19:43:41 +05:00
build: Use github cache for dl, tools and toolchain
This commit is contained in:
43
.github/workflows/build.yml
vendored
43
.github/workflows/build.yml
vendored
@@ -193,6 +193,14 @@ jobs:
|
|||||||
chmod +x *.sh
|
chmod +x *.sh
|
||||||
wget https://github.com/fantastic-packages/packages/raw/refs/heads/25.12/keys/usign/53FF2B6672243D28.pub
|
wget https://github.com/fantastic-packages/packages/raw/refs/heads/25.12/keys/usign/53FF2B6672243D28.pub
|
||||||
|
|
||||||
|
- name: Cache downloads (dl)
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: dl
|
||||||
|
key: dl-${{ hashFiles('feeds.conf.default') }}
|
||||||
|
restore-keys: |
|
||||||
|
dl-
|
||||||
|
|
||||||
- name: Update OpenWrt packages
|
- name: Update OpenWrt packages
|
||||||
id: update
|
id: update
|
||||||
run: |
|
run: |
|
||||||
@@ -213,6 +221,8 @@ jobs:
|
|||||||
[ -z "$G_BOARD_NAME" ] && exit 32
|
[ -z "$G_BOARD_NAME" ] && exit 32
|
||||||
G_SUBTARGET_NAME=$( grep -so '^CONFIG_TARGET_SUBTARGET=.*' .config | cut -d'"' -f2 )
|
G_SUBTARGET_NAME=$( grep -so '^CONFIG_TARGET_SUBTARGET=.*' .config | cut -d'"' -f2 )
|
||||||
[ -z "$G_SUBTARGET_NAME" ] && exit 33
|
[ -z "$G_SUBTARGET_NAME" ] && exit 33
|
||||||
|
G_TARGET_ARCH=$( grep -so '^CONFIG_TARGET_ARCH_PACKAGES=' .config | cut -d'"' -f2 )
|
||||||
|
echo "G_TARGET_ARCH=$G_TARGET_ARCH" >> $GITHUB_ENV
|
||||||
VERMAGIC_LIST="vermagic-$G_BOARD_NAME-$G_SUBTARGET_NAME-*.list"
|
VERMAGIC_LIST="vermagic-$G_BOARD_NAME-$G_SUBTARGET_NAME-*.list"
|
||||||
if [ $(find . -maxdepth 1 -name "$VERMAGIC_LIST" | wc -l) = "0" ]; then
|
if [ $(find . -maxdepth 1 -name "$VERMAGIC_LIST" | wc -l) = "0" ]; then
|
||||||
./vermagic_update.sh $G_BOARD_NAME $G_SUBTARGET_NAME
|
./vermagic_update.sh $G_BOARD_NAME $G_SUBTARGET_NAME
|
||||||
@@ -226,6 +236,7 @@ jobs:
|
|||||||
echo "G_DEVICE_NAME=$G_DEVICE_NAME" >> $GITHUB_ENV
|
echo "G_DEVICE_NAME=$G_DEVICE_NAME" >> $GITHUB_ENV
|
||||||
echo "G_BOARD_NAME=$G_BOARD_NAME" >> $GITHUB_ENV
|
echo "G_BOARD_NAME=$G_BOARD_NAME" >> $GITHUB_ENV
|
||||||
echo "G_SUBTARGET_NAME=$G_SUBTARGET_NAME" >> $GITHUB_ENV
|
echo "G_SUBTARGET_NAME=$G_SUBTARGET_NAME" >> $GITHUB_ENV
|
||||||
|
echo "G_TARGET_ARCH=$G_TARGET_ARCH" >> $GITHUB_ENV
|
||||||
echo "FILE_DATE=$FILE_DATE" >> $GITHUB_ENV
|
echo "FILE_DATE=$FILE_DATE" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Dump .config file
|
- name: Dump .config file
|
||||||
@@ -234,12 +245,38 @@ jobs:
|
|||||||
cat .config
|
cat .config
|
||||||
echo "========================"
|
echo "========================"
|
||||||
|
|
||||||
|
- name: Prepare for use cache of tools and toolchain
|
||||||
|
run: |
|
||||||
|
echo "G_TARGET_ARCH=$G_TARGET_ARCH" >> $GITHUB_ENV
|
||||||
|
rm -rf staging_dir/
|
||||||
|
rm -rf build_dir/
|
||||||
|
|
||||||
|
- name: Cache host tools
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
staging_dir/host
|
||||||
|
build_dir/host
|
||||||
|
staging_dir/hostpkg
|
||||||
|
build_dir/hostpkg
|
||||||
|
key: host-tools-${{ runner.os }}-${{ hashFiles('tools/**') }}
|
||||||
|
restore-keys: |
|
||||||
|
host-tools-${{ runner.os }}-
|
||||||
|
|
||||||
|
- name: Cache toolchain
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
staging_dir/toolchain-*
|
||||||
|
build_dir/toolchain-*
|
||||||
|
key: toolchain-${{ env.G_TARGET_ARCH }}-${{ hashFiles('toolchain/**') }}
|
||||||
|
restore-keys: |
|
||||||
|
toolchain-${{ env.G_TARGET_ARCH }}-
|
||||||
|
|
||||||
- name: Download tools and toolchain
|
- name: Download tools and toolchain
|
||||||
id: tools_download
|
id: tools_download
|
||||||
if: false # steps.configure.outputs.status == 'success'
|
if: false # steps.configure.outputs.status == 'success'
|
||||||
run: |
|
run: |
|
||||||
G_TARGET_ARCH=$( grep -so '^CONFIG_TARGET_ARCH_PACKAGES=' .config | cut -d'"' -f2 )
|
|
||||||
echo "G_TARGET_ARCH=$G_TARGET_ARCH" >> $GITHUB_ENV
|
|
||||||
echo "OpenWrt version: $FW_VER"
|
echo "OpenWrt version: $FW_VER"
|
||||||
SDK_URL_BASE="https://downloads.openwrt.org/releases/${FW_VER}/targets/${G_BOARD_NAME}/${G_SUBTARGET_NAME}"
|
SDK_URL_BASE="https://downloads.openwrt.org/releases/${FW_VER}/targets/${G_BOARD_NAME}/${G_SUBTARGET_NAME}"
|
||||||
echo "Searching SDK at $SDK_URL_BASE"
|
echo "Searching SDK at $SDK_URL_BASE"
|
||||||
@@ -310,7 +347,6 @@ jobs:
|
|||||||
id: tools
|
id: tools
|
||||||
if: steps.configure.outputs.status == 'success'
|
if: steps.configure.outputs.status == 'success'
|
||||||
run: |
|
run: |
|
||||||
export CCACHE=1
|
|
||||||
make toolchain/install -j$(nproc)
|
make toolchain/install -j$(nproc)
|
||||||
echo "status=success" >> $GITHUB_OUTPUT
|
echo "status=success" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
@@ -321,7 +357,6 @@ jobs:
|
|||||||
TARGET: ${{ matrix.target }}
|
TARGET: ${{ matrix.target }}
|
||||||
run: |
|
run: |
|
||||||
echo "Run $(nproc) thread compile"
|
echo "Run $(nproc) thread compile"
|
||||||
export CCACHE=1
|
|
||||||
if [ "$FAKE_BUILD" != "true" -a "$TEST_BUILD" = "true" -a "$PACKAGE_DIR" != "" ]; then
|
if [ "$FAKE_BUILD" != "true" -a "$TEST_BUILD" = "true" -a "$PACKAGE_DIR" != "" ]; then
|
||||||
make $PACKAGE_DIR/compile V=sc BUILD_LOG=1
|
make $PACKAGE_DIR/compile V=sc BUILD_LOG=1
|
||||||
exit 99
|
exit 99
|
||||||
|
|||||||
Reference in New Issue
Block a user