IPK_MANAGER: Add possibility to run ipk manager from gmenu2x #518
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
name: Buildroot | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
workflow_call: | |
inputs: | |
submodule: | |
description: The directory of the submodule, if this workflow is being called on a submodule | |
required: true | |
type: string | |
jobs: | |
build-image-uclibc: | |
runs-on: ubuntu-22.04 | |
env: | |
FORCE_UNSAFE_CONFIGURE: 1 | |
steps: | |
- name: Maximize build space | |
uses: easimon/maximize-build-space@v10 | |
with: | |
overprovision-lvm: true | |
remove-dotnet: true | |
remove-android: true | |
remove-haskell: true | |
remove-codeql: true | |
remove-docker-images: true | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- if: inputs.submodule | |
run: git submodule update --init -- ${{ inputs.submodule }} | |
- name: retrieve ccache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.buildroot-ccache | |
key: ${{ inputs.submodule }}-uclibc-ccache-${{ github.sha }} | |
restore-keys: | | |
${{ inputs.submodule }}-uclibc-ccache- | |
- name: generate cfw hash & iteration count | |
run: | | |
git config --global --add safe.directory /__w/buildroot/buildroot | |
echo "cfw_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT | |
if test $(git tag | wc -l) -ne 0; then \ | |
echo "cfw_tag=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT; \ | |
echo "cfw_iteration=$(git rev-list --count $(git describe --tags --abbrev=0)..HEAD)" >> $GITHUB_OUTPUT; \ | |
fi | |
id: cfwsha | |
- name: build | |
run: | | |
cd ${{ inputs.submodule || '.' }} | |
sudo apt-get update && sudo apt-get install -y gsfonts | |
make miyoo_uclibc_defconfig | |
CPU_N=$(getconf _NPROCESSORS_ONLN) | |
set -o pipefail | |
if ! ( \ | |
make -j $CPU_N sdk \ | |
CFW_HASH="${{ steps.cfwsha.outputs.cfw_sha }}" CFW_TAG="${{ steps.cfwsha.outputs.cfw_tag }}" CFW_ITERATION="${{ steps.cfwsha.outputs.cfw_iteration }}" \ | |
APPEND_VERSION="-Dev_build$(echo ${{ github.ref_name != 'master' && github.ref_name || '' }} | sed 's/\//-/g' | sed '/./ s/^/-/')" 2>&1 \ | |
| tee build.log \ | |
| grep --line-buffered "^>>>" \ | |
); then tail -n100 build.log && exit 1 | |
fi | |
- name: Archive build logs (uClibc) | |
if: success() || failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-logs (uClibc) | |
path: ${{ inputs.submodule || '.' }}/build.log | |
- name: generate-graphs | |
run: | | |
cd ${{ inputs.submodule || '.' }} | |
sudo apt-get update && sudo apt-get install -y python3-matplotlib python3-numpy | |
make graph-build | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: build image (uClibc) | |
path: ${{ inputs.submodule || '.' }}/output/images/miyoo-*.img | |
if-no-files-found: error # 'error', 'warn', 'ignore'; defaults to `warn` | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: SDK (uClibc) | |
path: ${{ inputs.submodule || '.' }}/output/images/arm-miyoo-linux-uclibcgnueabi_sdk-buildroot.tar.gz | |
if-no-files-found: error # 'error', 'warn', 'ignore'; defaults to `warn` | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: build-graphs (uClibc) | |
path: ${{ inputs.submodule || '.' }}/output/graphs/ | |
if-no-files-found: error # 'error', 'warn', 'ignore'; defaults to `warn` | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: rootfs (uClibc) | |
path: ${{ inputs.submodule || '.' }}/output/images/rootfs.btrfs | |
if-no-files-found: error # 'error', 'warn', 'ignore'; defaults to `warn` | |
build-image-musl: | |
runs-on: ubuntu-22.04 | |
env: | |
FORCE_UNSAFE_CONFIGURE: 1 | |
steps: | |
- name: Maximize build space | |
uses: easimon/maximize-build-space@v10 | |
with: | |
overprovision-lvm: true | |
remove-dotnet: true | |
remove-android: true | |
remove-haskell: true | |
remove-codeql: true | |
remove-docker-images: true | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- if: inputs.submodule | |
run: git submodule update --init -- ${{ inputs.submodule }} | |
- name: retrieve ccache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.buildroot-ccache | |
key: ${{ inputs.submodule }}-musl-ccache-${{ github.sha }} | |
restore-keys: | | |
${{ inputs.submodule }}-musl-ccache- | |
- name: generate cfw hash & iteration count | |
run: | | |
git config --global --add safe.directory /__w/buildroot/buildroot | |
echo "cfw_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT | |
if test $(git tag | wc -l) -ne 0; then \ | |
echo "cfw_tag=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT; \ | |
echo "cfw_iteration=$(git rev-list --count $(git describe --tags --abbrev=0)..HEAD)" >> $GITHUB_OUTPUT; \ | |
fi | |
id: cfwsha | |
- name: build | |
run: | | |
cd ${{ inputs.submodule || '.' }} | |
sudo apt-get update && sudo apt-get install -y gsfonts | |
make miyoo_musl_defconfig | |
CPU_N=$(getconf _NPROCESSORS_ONLN) | |
set -o pipefail | |
if ! ( \ | |
make -j $CPU_N sdk \ | |
CFW_HASH="${{ steps.cfwsha.outputs.cfw_sha }}" CFW_TAG="${{ steps.cfwsha.outputs.cfw_tag }}" CFW_ITERATION="${{ steps.cfwsha.outputs.cfw_iteration }}" \ | |
APPEND_VERSION="-Dev_build$(echo ${{ github.ref_name != 'master' && github.ref_name || '' }} | sed 's/\//-/g' | sed '/./ s/^/-/')" 2>&1 \ | |
| tee build.log \ | |
| grep --line-buffered "^>>>" \ | |
); then tail -n100 build.log && exit 1 | |
fi | |
- name: Archive build logs (musl) | |
if: success() || failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-logs (musl) | |
path: ${{ inputs.submodule || '.' }}/build.log | |
- name: generate-graphs | |
run: | | |
cd ${{ inputs.submodule || '.' }} | |
sudo apt-get update && sudo apt-get install -y python3-matplotlib python3-numpy | |
make graph-build | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: build image (musl) | |
path: ${{ inputs.submodule || '.' }}/output/images/miyoo-*.img | |
if-no-files-found: error # 'error', 'warn', 'ignore'; defaults to `warn` | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: SDK (musl) | |
path: ${{ inputs.submodule || '.' }}/output/images/arm-miyoo-linux-musleabi_sdk-buildroot.tar.gz | |
if-no-files-found: error # 'error', 'warn', 'ignore'; defaults to `warn` | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: build-graphs (musl) | |
path: ${{ inputs.submodule || '.' }}/output/graphs/ | |
if-no-files-found: error # 'error', 'warn', 'ignore'; defaults to `warn` | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: rootfs (musl) | |
path: ${{ inputs.submodule || '.' }}/output/images/rootfs.btrfs | |
if-no-files-found: error # 'error', 'warn', 'ignore'; defaults to `warn` | |
build-sdk-uclibc-static: | |
runs-on: ubuntu-22.04 | |
env: | |
FORCE_UNSAFE_CONFIGURE: 1 | |
steps: | |
- name: Maximize build space | |
uses: easimon/maximize-build-space@v10 | |
with: | |
overprovision-lvm: true | |
remove-dotnet: true | |
remove-android: true | |
remove-haskell: true | |
remove-codeql: true | |
remove-docker-images: true | |
- uses: actions/checkout@v4 | |
- if: inputs.submodule | |
run: git submodule update --init --depth 1 -- ${{ inputs.submodule }} | |
- name: retrieve ccache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.buildroot-ccache | |
key: ${{ inputs.submodule }}uclibc-static-ccache-${{ github.sha }} | |
restore-keys: | | |
${{ inputs.submodule }}uclibc-static-ccache- | |
- name: build | |
run: | | |
cd ${{ inputs.submodule || '.' }} | |
make miyoo_uclibc_static_defconfig | |
CPU_N=$(getconf _NPROCESSORS_ONLN) | |
set -o pipefail | |
if ! ( \ | |
make -j $CPU_N sdk 2>&1 \ | |
| tee build.log \ | |
| grep --line-buffered "^>>>" \ | |
); then tail -n100 build.log && exit 1 | |
fi | |
- name: Archive build logs (uClibc static) | |
if: success() || failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-logs (uClibc static) | |
path: ${{ inputs.submodule || '.' }}/build.log | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: SDK (uClibc static) | |
path: ${{ inputs.submodule || '.' }}/output/images/arm-miyoo-linux-uclibcgnueabi_sdk-buildroot.tar.gz | |
if-no-files-found: error # 'error', 'warn', 'ignore'; defaults to `warn` | |
build-sdk-musl-static: | |
runs-on: ubuntu-22.04 | |
env: | |
FORCE_UNSAFE_CONFIGURE: 1 | |
steps: | |
- name: Maximize build space | |
uses: easimon/maximize-build-space@v10 | |
with: | |
overprovision-lvm: true | |
remove-dotnet: true | |
remove-android: true | |
remove-haskell: true | |
remove-codeql: true | |
remove-docker-images: true | |
- uses: actions/checkout@v4 | |
- if: inputs.submodule | |
run: git submodule update --init --depth 1 -- ${{ inputs.submodule }} | |
- name: retrieve ccache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.buildroot-ccache | |
key: ${{ inputs.submodule }}musl-static-ccache-${{ github.sha }} | |
restore-keys: | | |
${{ inputs.submodule }}musl-static-ccache- | |
- name: build | |
run: | | |
cd ${{ inputs.submodule || '.' }} | |
make miyoo_musl_static_defconfig | |
CPU_N=$(getconf _NPROCESSORS_ONLN) | |
set -o pipefail | |
if ! ( \ | |
make -j $CPU_N sdk 2>&1 \ | |
| tee build.log \ | |
| grep --line-buffered "^>>>" \ | |
); then tail -n100 build.log && exit 1 | |
fi | |
- name: Archive build logs (musl static) | |
if: success() || failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-logs (musl static) | |
path: ${{ inputs.submodule || '.' }}/build.log | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: SDK (musl static) | |
path: ${{ inputs.submodule || '.' }}/output/images/arm-miyoo-linux-musleabi_sdk-buildroot.tar.gz | |
if-no-files-found: error # 'error', 'warn', 'ignore'; defaults to `warn` |