From f0535095a26309861e5c37948913a7c5d181c1cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20G=C3=BCnter?= Date: Sat, 16 Oct 2021 13:03:09 +0200 Subject: changed workflow to build binaries using musl --- .github/workflows/continuous-build.yml | 178 ++++++++++++++++----------------- 1 file changed, 85 insertions(+), 93 deletions(-) (limited to '.github') diff --git a/.github/workflows/continuous-build.yml b/.github/workflows/continuous-build.yml index 33d545c..6662fda 100644 --- a/.github/workflows/continuous-build.yml +++ b/.github/workflows/continuous-build.yml @@ -1,9 +1,11 @@ name: Continuous Build Linux - + on: + workflow_dispatch: push: branches: - - main + - master + - musl-build tags-ignore: - '*.*' paths: @@ -12,111 +14,101 @@ on: - '!src/freebsd/**' - 'include/**' - 'Makefile' + - '.github/workflows/continuous-build.yml' jobs: - build: + static-build: + continue-on-error: true + strategy: + matrix: + toolchain: + - aarch64-linux-musl + - aarch64_be-linux-musl + - arm-linux-musleabi + - arm-linux-musleabihf + - armeb-linux-musleabi + - armeb-linux-musleabihf + - armel-linux-musleabi + - armel-linux-musleabihf + - armv5l-linux-musleabi + - armv5l-linux-musleabihf + - armv6-linux-musleabi + - armv6-linux-musleabihf + - armv7l-linux-musleabihf + - armv7m-linux-musleabi + - armv7r-linux-musleabihf + - i486-linux-musl + - i686-linux-musl + - m68k-linux-musl + - microblaze-linux-musl + - microblazeel-linux-musl + - mips-linux-musl + - mips-linux-musln32sf + - mips-linux-muslsf + - mips64-linux-musl + - mips64-linux-musln32 + - mips64-linux-musln32sf + - mips64el-linux-musl + - mips64el-linux-musln32 + - mips64el-linux-musln32sf + - mipsel-linux-musl + - mipsel-linux-musln32 + - mipsel-linux-musln32sf + - mipsel-linux-muslsf + - or1k-linux-musl + - powerpc-linux-musl + - powerpc-linux-muslsf + - powerpc64-linux-musl + - powerpc64le-linux-musl + - powerpcle-linux-musl + - powerpcle-linux-muslsf + - riscv32-linux-musl + - riscv64-linux-musl + - s390x-linux-musl + - sh2-linux-musl + - sh2-linux-muslfdpic + - sh2eb-linux-musl + - sh2eb-linux-muslfdpic + - sh4-linux-musl + - sh4eb-linux-musl + - x86_64-linux-musl + - x86_64-linux-muslx32 runs-on: ubuntu-latest - container: ubuntu:21.04 + container: muslcc/x86_64:${{ matrix.toolchain }} steps: - - uses: actions/checkout@v2 - name: Install build tools - run: | - apt update && \ - apt install coreutils sed git build-essential gcc-11 g++-11 -y - apt install -y g++-11-aarch64-linux-gnu g++-11-i686-linux-gnu \ - g++-11-arm-linux-gnueabi g++-11-arm-linux-gnueabihf g++-11-riscv64-linux-gnu \ - g++-11-sparc64-linux-gnu - - mkdir -p multiarch_bin - - git init # [fix Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).] + run: apk add --no-cache coreutils git make tar zstd - - name: Compile x86_64 - run: | - make CXX=g++-11 ARCH=x86_64 STATIC=true QUIET=true - GIT_HASH=$(git rev-parse --short "$GITHUB_SHA") - mv bin/btop multiarch_bin/btop-x86_64-$GIT_HASH - make distclean - - - name: Compile i686 - run: | - make CXX=i686-linux-gnu-g++-11 ARCH=i686 STATIC=true QUIET=true - GIT_HASH=$(git rev-parse --short "$GITHUB_SHA") - mv bin/btop multiarch_bin/btop-i686-$GIT_HASH - make distclean + - name: Checkout source + uses: actions/checkout@v2 + + - name: Fix - Stopping at filesystem boundary + run: git init # [fix Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).] - - name: Compile aarch64 + - name: Build run: | - make CXX=aarch64-linux-gnu-g++-11 ARCH=aarch64 STATIC=true QUIET=true - GIT_HASH=$(git rev-parse --short "$GITHUB_SHA") - mv bin/btop multiarch_bin/btop-aarch64-$GIT_HASH - make distclean + TOOLCHAIN=${{ matrix.toolchain }} + make -j $(getconf _NPROCESSORS_ONLN) ARCH=${TOOLCHAIN/-*/} STATIC=true QUIET=true - - name: Compile armel - run: | - make CXX=arm-linux-gnueabi-g++-11 ARCH=armel STATIC=true QUIET=true - GIT_HASH=$(git rev-parse --short "$GITHUB_SHA") - mv bin/btop multiarch_bin/btop-armel-$GIT_HASH - make distclean - - - name: Compile armhf - run: | - make CXX=arm-linux-gnueabihf-g++-11 ARCH=armhf STATIC=true QUIET=true - GIT_HASH=$(git rev-parse --short "$GITHUB_SHA") - mv bin/btop multiarch_bin/btop-armhf-$GIT_HASH - make distclean - - - name: Compile riscv64 - run: | - make CXX=riscv64-linux-gnu-g++-11 ARCH=riscv64 STATIC=true QUIET=true - GIT_HASH=$(git rev-parse --short "$GITHUB_SHA") - mv bin/btop multiarch_bin/btop-riscv64-$GIT_HASH - make distclean + - name: Make executable + run: chmod +x bin/* - - name: Compile sparc64 + - name: Set up directories run: | - make CXX=sparc64-linux-gnu-g++-11 ARCH=sparc64 STATIC=true QUIET=true - GIT_HASH=$(git rev-parse --short "$GITHUB_SHA") - mv bin/btop multiarch_bin/btop-sparc64-$GIT_HASH - make distclean + mkdir .artifacts + mkdir .package - - name: Make executable + - name: Create binary atrifacts run: | - chmod +x multiarch_bin/* - - - uses: actions/upload-artifact@v2 - with: - name: btop-x86_64 - path: 'multiarch_bin/btop-x86_64*' - - - uses: actions/upload-artifact@v2 - with: - name: btop-i686 - path: 'multiarch_bin/btop-i686*' - - - uses: actions/upload-artifact@v2 - with: - name: btop-aarch64 - path: 'multiarch_bin/btop-aarch64*' - - - uses: actions/upload-artifact@v2 - with: - name: btop-armel - path: 'multiarch_bin/btop-armel*' - - - uses: actions/upload-artifact@v2 - with: - name: btop-armhf - path: 'multiarch_bin/btop-armhf*' - - - uses: actions/upload-artifact@v2 - with: - name: btop-riscv64 - path: 'multiarch_bin/btop-riscv64*' + TOOLCHAIN=${{ matrix.toolchain }} + GIT_HASH=$(git rev-parse --short "${{ github.sha }}") + FILENAME=btop-${TOOLCHAIN/linux-musl/}-$GIT_HASH + cp bin/btop .artifacts/$FILENAME - - uses: actions/upload-artifact@v2 + - name: Upload artifacts + uses: actions/upload-artifact@v2 with: - name: btop-sparc64 - path: 'multiarch_bin/btop-sparc64*' + name: btop-${{ matrix.toolchain }} + path: '.artifacts/**' -- cgit v1.2.3