update #109
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SPDX-FileCopyrightText: Copyright (c) 2024 沉默の金 <cmzj@cmzj.org> | |
# SPDX-License-Identifier: MIT | |
name: Build OpenWrt-K | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 4 * * *' | |
push: | |
paths: | |
- '.github/**' | |
- 'files/**' | |
- 'scripts/**' | |
- 'build_helper/**' | |
- 'config/**' | |
- '!.gitignore' | |
- '!LICENSE' | |
- '!README.md' | |
- '!img/**' | |
permissions: | |
actions: write | |
contents: write | |
discussions: write | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
BUILD_HELPER_DEBUG: true | |
jobs: | |
prepare: | |
outputs: | |
matrix: ${{ steps.run.outputs.matrix }} | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: 建立环境 | |
uses: ./.github/action/prepare | |
- name: 准备 | |
id: run | |
working-directory: /opt/OpenWrt-K | |
run: python3 -m build_helper --task prepare | |
- name: 上传 | |
uses: ./../../../../../opt/OpenWrt-K/.github/action/upload | |
base-builds: | |
runs-on: ubuntu-22.04 | |
needs: prepare | |
name: base-builds-${{ matrix.name }} | |
strategy: | |
matrix: ${{ fromJSON(needs.prepare.outputs.matrix) }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: 建立环境 | |
uses: ./.github/action/prepare | |
- name: 准备编译 | |
id: prepare | |
working-directory: /opt/OpenWrt-K | |
run: python3 -m build_helper --task build-prepare --config ${{ matrix.config }} | |
- name: 缓存toolchain | |
uses: actions/cache@v4 | |
id: cache-toolchain | |
if: ${{ steps.prepare.outputs.use-cache }} | |
with: | |
path: | | |
${{ steps.prepare.outputs.openwrt-path }}/staging_dir/host* | |
${{ steps.prepare.outputs.openwrt-path }}/staging_dir/tool* | |
key: ${{ steps.prepare.outputs.toolchain-key }} | |
- name: 缓存ccache | |
uses: actions/cache@v4 | |
if: ${{ steps.prepare.outputs.use-cache }} | |
with: | |
path: ${{ steps.prepare.outputs.openwrt-path }}/.ccache | |
key: ${{ steps.prepare.outputs.cache-key }} | |
restore-keys: | | |
${{ steps.prepare.outputs.cache-restore-key }} | |
- name: 编译 | |
id: build | |
working-directory: /opt/OpenWrt-K | |
run: python3 -m build_helper --task base-builds --config ${{ matrix.config }} | |
env: | |
CACHE_HIT: ${{ steps.cache-toolchain.outputs.cache-hit }} | |
- name: 上传 | |
if: success() || failure() | |
uses: ./../../../../../opt/OpenWrt-K/.github/action/upload | |
build-packages: | |
runs-on: ubuntu-22.04 | |
needs: [prepare,base-builds] | |
name: build-packages-${{ matrix.name }} | |
strategy: | |
matrix: ${{ fromJSON(needs.prepare.outputs.matrix) }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: 建立环境 | |
uses: ./.github/action/prepare | |
- name: 准备编译 | |
id: prepare | |
working-directory: /opt/OpenWrt-K | |
run: python3 -m build_helper --task build-prepare --config ${{ matrix.config }} | |
- name: 缓存ccache | |
uses: actions/cache@v4 | |
if: ${{ steps.prepare.outputs.use-cache }} | |
with: | |
path: ${{ steps.prepare.outputs.openwrt-path }}/.ccache | |
key: ${{ steps.prepare.outputs.cache-key }} | |
restore-keys: | | |
${{ steps.prepare.outputs.cache-restore-key }} | |
- name: 编译 | |
id: build | |
working-directory: /opt/OpenWrt-K | |
run: python3 -m build_helper --task build_packages --config ${{ matrix.config }} | |
- name: 上传 | |
if: success() || failure() | |
uses: ./../../../../../opt/OpenWrt-K/.github/action/upload | |
build-ImageBuilder: | |
runs-on: ubuntu-22.04 | |
needs: [prepare,base-builds] | |
name: build-ImageBuilder-${{ matrix.name }} | |
strategy: | |
matrix: ${{ fromJSON(needs.prepare.outputs.matrix) }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: 建立环境 | |
uses: ./.github/action/prepare | |
- name: 准备编译 | |
id: prepare | |
working-directory: /opt/OpenWrt-K | |
run: python3 -m build_helper --task build-prepare --config ${{ matrix.config }} | |
- name: 缓存ccache | |
uses: actions/cache@v4 | |
if: ${{ steps.prepare.outputs.use-cache }} | |
with: | |
path: ${{ steps.prepare.outputs.openwrt-path }}/.ccache | |
key: ${{ steps.prepare.outputs.cache-key }} | |
restore-keys: | | |
${{ steps.prepare.outputs.cache-restore-key }} | |
- name: 编译 | |
id: build | |
working-directory: /opt/OpenWrt-K | |
run: python3 -m build_helper --task build_image_builder --config ${{ matrix.config }} | |
- name: 上传 | |
if: success() || failure() | |
uses: ./../../../../../opt/OpenWrt-K/.github/action/upload | |
build-images: | |
runs-on: ubuntu-22.04 | |
needs: [prepare,base-builds,build-ImageBuilder,build-packages] | |
name: build-Image-${{ matrix.name }} | |
strategy: | |
matrix: ${{ fromJSON(needs.prepare.outputs.matrix) }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: 建立环境 | |
uses: ./.github/action/prepare | |
- name: 准备构建 | |
id: prepare | |
working-directory: /opt/OpenWrt-K | |
run: python3 -m build_helper --task build-prepare --config ${{ matrix.config }} | |
- name: 构建 | |
id: build | |
working-directory: /opt/OpenWrt-K | |
run: python3 -m build_helper --task build_images --config ${{ matrix.config }} | |
- name: 上传 | |
if: success() || failure() | |
uses: ./../../../../../opt/OpenWrt-K/.github/action/upload | |
releases: | |
runs-on: ubuntu-22.04 | |
needs: [prepare, build-images] | |
name: releases-${{ matrix.name }} | |
strategy: | |
matrix: ${{ fromJSON(needs.prepare.outputs.matrix) }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: 建立环境 | |
uses: ./.github/action/prepare | |
- name: 发布 | |
working-directory: /opt/OpenWrt-K | |
run: python3 -m build_helper --task releases --config ${{ matrix.config }} |