Merge pull request #46 from messense/build/linux-kernel-5.10 #81
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
on: | |
push: | |
branches: | |
- 'build/*' | |
tags: [ 'v*' ] | |
pull_request: | |
types: [ opened, synchronize, reopened, labeled ] | |
workflow_dispatch: | |
name: Build | |
permissions: | |
id-token: write | |
attestations: write | |
jobs: | |
build: | |
name: Build ${{ matrix.target }} for ${{ matrix.os.arch }} | |
if: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'CI-build') }} | |
runs-on: ${{ matrix.os.name }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- name: macos-12 | |
arch: x86_64 | |
- name: macos-14 | |
arch: aarch64 | |
target: | |
- x86_64-unknown-linux-gnu | |
- x86_64-unknown-linux-musl | |
- i686-unknown-linux-gnu | |
- i686-unknown-linux-musl | |
- aarch64-unknown-linux-gnu | |
- aarch64-unknown-linux-musl | |
- armv7-unknown-linux-gnueabihf | |
- armv7-unknown-linux-musleabihf | |
- arm-unknown-linux-gnueabi | |
- arm-unknown-linux-gnueabihf | |
- arm-unknown-linux-musleabihf | |
- mipsel-unknown-linux-gnu | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install crosstool-ng | |
run: | | |
brew install coreutils | |
brew install --HEAD crosstool-ng | |
# fix python env in the runner | |
brew unlink [email protected] && brew link --overwrite [email protected] | |
python3 --version | |
- name: Mount volumes | |
run: | | |
set -ex | |
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 16g -volname build build.dmg | |
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 1g -volname tools tools.dmg | |
hdiutil attach build.dmg.sparseimage | |
hdiutil attach tools.dmg.sparseimage | |
ls /Volumes | |
- name: Build Toolchain | |
run: | | |
set -ex | |
mkdir /Volumes/build/src | |
cd ${{ matrix.target }} | |
ct-ng build -j $(($(nproc) - 1)) | |
- name: Tail build.log on failure | |
if: ${{ failure() }} | |
run: tail -n 500 ${{ matrix.target }}/build.log | |
- name: Archive Toolchain | |
run: | | |
set -ex | |
cd /Volumes/tools | |
tar czf ${{ matrix.target }}-${{ matrix.os.arch }}-darwin.tar.gz ${{ matrix.target }} | |
cd - | |
mv /Volumes/tools/${{ matrix.target }}-${{ matrix.os.arch }}-darwin.tar.gz . | |
sha256sum ${{ matrix.target }}-${{ matrix.os.arch }}-darwin.tar.gz | tee ${{ matrix.target }}-${{ matrix.os.arch }}-darwin.tar.gz.sha256 | |
- uses: actions/attest-build-provenance@v1 | |
with: | |
subject-path: ${{ matrix.target }}-${{ matrix.os.arch }}-darwin.tar.gz | |
- name: Upload Toolchain | |
uses: actions/upload-artifact@v4 | |
with: | |
name: toolchain-${{ matrix.target }}-${{ matrix.os.arch }}-darwin | |
path: ${{ matrix.target }}-${{ matrix.os.arch }}-darwin.tar.gz | |
if-no-files-found: error | |
- name: Upload Toolchain to GitHub Release | |
uses: svenstaro/upload-release-action@v2 | |
if: "startsWith(github.ref, 'refs/tags/')" | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ matrix.target }}-${{ matrix.os.arch }}-darwin.tar.gz* | |
file_glob: true | |
tag: ${{ github.ref }} |