Build dev binary #34
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: Build dev binary | |
on: | |
workflow_dispatch: | |
jobs: | |
build-dev-win: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- platform: x64 | |
bcj: -mf=BCJ2 | |
name: x64 | |
- platform: Win32 | |
bcj: -mf=BCJ2 | |
name: x86 | |
- platform: ARM64 | |
bcj: # -mf=ARM64 | |
name: arm64 | |
name: Build ${{ matrix.name }} Windows binary | |
runs-on: windows-2019 | |
steps: | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- uses: actions/checkout@v3 | |
- run: msbuild -property:PlatformToolset=ClangCL -property:Configuration=Release -property:Platform=${{ matrix.platform }} par2cmdline.sln | |
- run: move "${{ matrix.platform }}\Release\par2.exe" par2.exe && 7z a -t7z -mx=9 ${{ matrix.bcj }} par2.7z par2.exe | |
- uses: actions/upload-artifact@v3 | |
with: | |
path: ./par2.7z | |
name: par2cmdline-turbo-dev-win-${{ matrix.name }}.7z | |
retention-days: 5 | |
# build-dev-linux-static: | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# include: | |
# - target: x86_64-linux-musl | |
# xz_bcj: --x86 | |
# name: amd64 | |
# configure_host: | |
# - target: aarch64-linux-musl | |
# xz_bcj: # --arm64 # requires xz utils >=5.4 to decompress | |
# name: aarch64 | |
# configure_host: --host=aarch64 | |
# - target: armv7l-linux-musleabihf | |
# xz_bcj: --arm | |
# name: armv7l | |
# configure_host: --host=armv7l | |
# name: Build ${{ matrix.name }} Linux static binary | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - uses: Lesmiscore/musl-cross-compilers@heracles | |
# id: musl | |
# with: | |
# target: ${{ matrix.target }} | |
# - run: aclocal && automake --warnings=all --add-missing && autoconf --warnings=all | |
# - run: ./configure ${{ matrix.configure_host }} | |
# env: | |
# CC: ${{ steps.musl.outputs.path }}/${{ matrix.target }}-cc | |
# CXX: ${{ steps.musl.outputs.path }}/${{ matrix.target }}-c++ | |
# LDFLAGS: -static -s | |
# - uses: actions/upload-artifact@v3 | |
# with: | |
# path: ./config.log | |
# name: configure-linux-${{ matrix.arch }}.log | |
# retention-days: 5 | |
# if: ${{ failure() }} | |
# - run: make | |
# - run: ./par2 -h | |
# if: ${{ matrix.name == 'amd64' }} | |
# - run: make check | |
# if: ${{ matrix.name == 'amd64' }} | |
# - run: xz -9e ${{ matrix.xz_bcj }} --lzma2 par2 -c > par2.xz | |
# - uses: actions/upload-artifact@v3 | |
# with: | |
# path: ./par2.xz | |
# name: par2cmdline-turbo-dev-linux-${{ matrix.name }}.xz | |
# retention-days: 5 | |
build-dev-linux-static: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- arch: amd64 | |
xz_bcj: --x86 | |
xcc: | |
configure_host: | |
- arch: arm64 | |
xz_bcj: # --arm64 # requires xz utils >=5.4 to decompress | |
xcc: aarch64-linux-gnu- | |
configure_host: --host=aarch64-linux-gnu | |
- arch: armhf | |
xz_bcj: --arm | |
xcc: arm-linux-gnueabihf- | |
configure_host: --host=armv7l-linux-gnueabihf | |
- arch: riscv64 | |
xz_bcj: | |
xcc: riscv64-linux-gnu- | |
configure_host: --host=riscv64-linux-gnu | |
- arch: ppc64el | |
xz_bcj: | |
xcc: powerpc64le-linux-gnu- | |
configure_host: --host=ppc64-linux-gnu | |
name: Build ${{ matrix.arch }} Linux static binary | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: junelife/gha-ubuntu-cross@v6 | |
with: | |
arch: ${{ matrix.arch }} | |
if: ${{ matrix.arch != 'amd64' }} | |
- run: aclocal && automake --warnings=all --add-missing && autoconf --warnings=all | |
- run: ./configure ${{ matrix.configure_host }} | |
env: | |
CC: ${{ matrix.xcc }}gcc | |
CXX: ${{ matrix.xcc }}g++ | |
LDFLAGS: -static -s | |
- uses: actions/upload-artifact@v3 | |
with: | |
path: ./config.log | |
name: configure-linux-${{ matrix.arch }}.log | |
retention-days: 5 | |
if: ${{ failure() }} | |
- run: make | |
- run: ./par2 -h | |
if: ${{ matrix.arch == 'amd64' }} | |
- run: make check | |
if: ${{ matrix.arch == 'amd64' }} | |
- run: xz -9e ${{ matrix.xz_bcj }} --lzma2 par2 -c > par2.xz | |
- uses: actions/upload-artifact@v3 | |
with: | |
path: ./par2.xz | |
name: par2cmdline-turbo-dev-linux-${{ matrix.arch }}.xz | |
retention-days: 5 | |
build-dev-mac-x64: | |
name: Build x64 MacOS binary | |
runs-on: macos-13 | |
steps: | |
- uses: ConorMacBride/install-package@v1 | |
with: | |
brew: automake llvm | |
# force past "The `brew link` step did not complete successfully" | |
continue-on-error: true | |
- run: | | |
if [ -f "`brew --prefix llvm`/bin/clang" ]; then | |
echo "CC=`brew --prefix llvm`/bin/clang" >> $GITHUB_ENV | |
echo "CXX=`brew --prefix llvm`/bin/clang++" >> $GITHUB_ENV | |
fi | |
- uses: actions/checkout@v3 | |
- run: aclocal && automake --warnings=all --add-missing && autoconf --warnings=all | |
- run: ./configure | |
- uses: actions/upload-artifact@v3 | |
with: | |
path: ./config.log | |
name: configure-macos-x64.log | |
retention-days: 5 | |
if: ${{ failure() }} | |
- run: make | |
- run: strip par2 | |
- run: ./par2 -h | |
- run: make check | |
- run: xz -9e --x86 --lzma2 par2 | |
- uses: actions/upload-artifact@v3 | |
with: | |
path: ./par2.xz | |
name: par2cmdline-turbo-dev-macos-x64.xz | |
retention-days: 5 | |
build-dev-mac-arm64: | |
name: Build arm64 MacOS binary | |
runs-on: ubuntu-22.04 | |
steps: | |
# workaround issue with OpenSSL 3.0.2 on 22.04: https://github.com/tpoechtrager/osxcross/issues/349 | |
# issue is fixed in 3.0.7, so grab 3.0.8 from Ubuntu 23.04 | |
- run: | | |
echo 'deb http://archive.ubuntu.com/ubuntu/ lunar main' | sudo tee -a /etc/apt/sources.list.d/lunar.list >/dev/null | |
echo 'APT::Default-Release "jammy";' | sudo tee -a /etc/apt/apt.conf >/dev/null | |
sudo apt update | |
sudo apt -t=lunar -y install openssl | |
- uses: mbround18/setup-osxcross@main # OSXCROSS_TARGET unavailable in v1.1 | |
with: | |
osx-version: "12.3" | |
- uses: actions/checkout@v3 | |
- run: aclocal && automake --warnings=all --add-missing && autoconf --warnings=all | |
- run: ./configure --host=aarch64-macos | |
env: | |
CC: oa64-clang | |
CXX: oa64-clang++ | |
AR: arm64-apple-darwin21.4-ar | |
RANLIB: arm64-apple-darwin21.4-ranlib | |
STRIP: arm64-apple-darwin21.4-strip | |
- uses: actions/upload-artifact@v3 | |
with: | |
path: ./config.log | |
name: configure-macos-arm64.log | |
retention-days: 5 | |
if: ${{ failure() }} | |
- run: make | |
- run: arm64-apple-darwin21.4-strip par2 | |
- run: | | |
wget -q -O- https://github.com/indygreg/apple-platform-rs/releases/download/apple-codesign%2F0.22.0/apple-codesign-0.22.0-x86_64-unknown-linux-musl.tar.gz | tar zxf - | |
apple-codesign*/rcodesign sign par2 | |
- if: ${{ failure() }} | |
run: | | |
ls | |
ls apple-codesign* | |
find . -name rcodesign | |
- run: xz -9e --lzma2 par2 | |
- uses: actions/upload-artifact@v3 | |
with: | |
path: ./par2.xz | |
name: par2cmdline-turbo-dev-macos-arm64.xz | |
retention-days: 5 |