summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorJan Günter <jan.guenter@googlemail.com>2021-10-16 13:03:09 +0200
committerJan Günter <jan.guenter@googlemail.com>2021-10-16 13:39:52 +0200
commitf0535095a26309861e5c37948913a7c5d181c1cd (patch)
tree8a6d605d4fc210d7beabea02c97b149076dfdf18 /.github
parentc8a7c0dc19c74dbd9f15efa5af54977617a405e6 (diff)
changed workflow to build binaries using musl
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/continuous-build.yml178
1 files changed, 85 insertions, 93 deletions
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/**'