Build dev binary #25
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 | |
name: Build ${{ matrix.arch }} Linux static binary | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: junelife/gha-ubuntu-cross@v4 | |
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-latest | |
steps: | |
- uses: ConorMacBride/install-package@v1 | |
with: | |
brew: automake llvm | |
- 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 | |
env: | |
LDFLAGS: -s | |
- uses: actions/upload-artifact@v3 | |
with: | |
path: ./config.log | |
name: configure-macos-x64.log | |
retention-days: 5 | |
if: ${{ failure() }} | |
- run: make | |
- 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 | |
# avoid OpenSSL 3.0.2 on 22.04: https://github.com/tpoechtrager/osxcross/issues/349 | |
runs-on: ubuntu-20.04 | |
steps: | |
- 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 | |
LDFLAGS: -s | |
- uses: actions/upload-artifact@v3 | |
with: | |
path: ./config.log | |
name: configure-macos-arm64.log | |
retention-days: 5 | |
if: ${{ failure() }} | |
- run: make | |
- 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 |