Skip to content

Build script improvements #84

Build script improvements

Build script improvements #84

Workflow file for this run

name: Compile Libraries
on:
push:
pull_request:
workflow_dispatch:
jobs:
build-libs-macos-intel:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["macos-11"]
fail-fast: true
steps:
- uses: actions/checkout@v3
- name: Compile library
run: ./mac_build.sh
- uses: actions/upload-artifact@v3
with:
name: lib-macos-intel
path: "libsndfile.dylib"
retention-days: 7
if-no-files-found: error
build-libs-macos-arm64:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["macos-11"]
fail-fast: true
steps:
- uses: actions/checkout@v3
- name: Compile library
run: ./mac_build.sh arm64
- uses: actions/upload-artifact@v3
with:
name: lib-macos-arm64
path: "libsndfile_arm64.dylib"
retention-days: 7
if-no-files-found: error
build-libs-linux-x86_64:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["ubuntu-20.04"]
fail-fast: true
steps:
- uses: actions/checkout@v3
- name: Compile library
run: ./linux_build.sh
- uses: actions/upload-artifact@v3
with:
name: lib-linux-x86_64
path: "libsndfile.so"
build-libs-linux-x86_64-glibc2_17:
runs-on: "ubuntu-latest"
strategy:
fail-fast: true
container:
image: centos:7
env:
# OpenSSL<=1.0.2 is available for CentOS7, so we need to compile OpenSSL and Curl
SSL_VERSION: 3.1.0
CURL_VERSION: 8.0.1
steps:
- uses: actions/checkout@v3
- name: Install required packages
run: |
yum install -y gcc gcc-c++ make bzip2 zlib-devel perl-core libmetalink-devel libssh2-devel c-ares-devel lbzip2
- name: Compile OpenSSL
run : |
curl -LO https://www.openssl.org/source/openssl-${SSL_VERSION}.tar.gz
tar xvf openssl-${SSL_VERSION}.tar.gz
cd openssl-${SSL_VERSION}
./config --prefix=/usr shared zlib-dynamic
make
make test
make install
# check version
openssl version
- name: Compile curl
run: |
curl -LO https://curl.se/download/curl-${CURL_VERSION}.tar.gz
tar xvf curl-${CURL_VERSION}.tar.gz
cd curl-${CURL_VERSION}
./configure --enable-libcurl-option --with-openssl
make
make install
rm /usr/bin/curl
# check version
curl -V
- name: Compile library
run: ./linux_build.sh
- uses: actions/upload-artifact@v3
with:
name: lib-linux-x86_64-glibc2_17
path: "libsndfile.so"
build-libs-linux-arm64:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["ubuntu-20.04"]
fail-fast: true
steps:
- uses: actions/checkout@v3
- name: Compile library
uses: pguyot/arm-runner-action@v2
with:
base_image: raspios_lite_arm64:2022-04-04
cpu: cortex-a53
cpu_info: cpuinfo/raspberrypi_zero2_w_arm64
bind_mount_repository: true
commands: |
./linux_build.sh
- uses: actions/upload-artifact@v3
with:
name: lib-linux-arm64
path: "libsndfile.so"
build-libs-windows:
runs-on: windows-2019
strategy:
matrix:
include:
- triplet: "x64-windows-custom"
libname: "libsndfile_x64.dll"
- triplet: "x86-windows-custom"
libname: "libsndfile_x86.dll"
fail-fast: true
steps:
- uses: actions/checkout@v3
- name: Update VCPKG
run: "vcpkg update"
- name: Build library
run: "vcpkg install libsndfile:${{ matrix.triplet }} --overlay-triplets=triplets"
- name: Copy library
run: "Copy-Item c:/vcpkg/installed/${{ matrix.triplet }}/bin/sndfile.dll -Destination ${{ matrix.libname }}"
- uses: actions/upload-artifact@v3
with:
name: lib-windows
path: ${{ matrix.libname }}
retention-days: 7
if-no-files-found: error