2022-12-22 17:34:48 +01:00
|
|
|
#############################################################################
|
|
|
|
#
|
|
|
|
# Author: Jia Tan
|
|
|
|
#
|
|
|
|
# This file has been put into the public domain.
|
|
|
|
# You can do whatever you want with this file.
|
|
|
|
#
|
|
|
|
#############################################################################
|
|
|
|
|
|
|
|
name: CI
|
|
|
|
|
|
|
|
on:
|
|
|
|
# Triggers the workflow on push or pull request events but only for the master branch
|
|
|
|
push:
|
|
|
|
branches: [ master ]
|
|
|
|
pull_request:
|
|
|
|
branches: [ master ]
|
|
|
|
|
|
|
|
# Allows running workflow manually
|
|
|
|
workflow_dispatch:
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
# When CMake can support disabling check types and
|
|
|
|
# encoders/decoders/threads, it will be combined to one Linux job
|
|
|
|
# and another matrix list.
|
|
|
|
Linux-Autotools:
|
|
|
|
# Just run on latest ubuntu
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install Dependencies
|
2023-03-16 14:44:02 +01:00
|
|
|
run: sudo apt-get install -y autoconf automake build-essential po4a autopoint gcc-multilib doxygen
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
# -b specifies the build system to use.
|
|
|
|
# -p specifies the phase (build or test) to help narrow down an error
|
|
|
|
# if one occurs.
|
2023-01-18 15:11:05 +01:00
|
|
|
#
|
|
|
|
# Start with the 32-bit build because the autoconf cache must be reset
|
|
|
|
# after the build because the 32-bit build sets the CFLAGS env variable.
|
|
|
|
# By starting with the 32-bit build, we only have to clear the
|
|
|
|
# cache once.
|
|
|
|
- name: Build 32-bit
|
|
|
|
run: ./build-aux/ci_build.sh -b autotools -p build -f "-m32"
|
|
|
|
- name: Test 32-bit
|
|
|
|
run: |
|
2023-02-01 14:36:22 +01:00
|
|
|
./build-aux/ci_build.sh -b autotools -p test -f "-m32" -n 32_bit
|
2023-01-18 15:11:05 +01:00
|
|
|
cd ../xz_build && make distclean
|
|
|
|
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Build with full features
|
|
|
|
run: ./build-aux/ci_build.sh -b autotools -p build
|
|
|
|
- name: Test with full features
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -p test -n full_features
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without encoders
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d encoders,shared -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without encoders
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d encoders,shared -p test -n no_encoders
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without decoders
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d decoders,shared -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without decoders
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d decoders,shared -p test -n no_decoders
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without threads
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d threads,shared -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without threads
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d threads,shared -p test -n no_threads
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without BCJ filters
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d bcj,shared,nls -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without BCJ filters
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d bcj,shared,nls -p test -n no_bcj
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without Delta filters
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d delta,shared,nls -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without Delta filters
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d delta,shared,nls -p test -n no_delta
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without sha256 check
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -c crc32,crc64 -d shared,nls -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without sha256 check
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -c crc32,crc64 -d shared,nls -p test -n no_sha256
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without crc64 check
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -c crc32,sha256 -d shared,nls -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without crc64 check
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -c crc32,sha256 -d shared,nls -p test -n no_crc64
|
|
|
|
|
|
|
|
# Attempt to upload the test logs as artifacts if any step has failed
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
|
|
if: ${{ failure() }}
|
|
|
|
with:
|
|
|
|
name: Linux Autotools Test Logs
|
|
|
|
path: build-aux/artifacts
|
2022-12-22 17:34:48 +01:00
|
|
|
|
|
|
|
Linux-CMake:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install Dependencies
|
|
|
|
run: sudo apt-get install -y build-essential cmake
|
|
|
|
- name: Build
|
2023-01-07 14:05:15 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b cmake -p build
|
|
|
|
- name: Test
|
|
|
|
run: ./build-aux/ci_build.sh -b cmake -p test
|
2023-02-01 14:36:22 +01:00
|
|
|
# Attempt to upload the test logs as artifacts if any step has failed
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
|
|
if: ${{ failure() }}
|
|
|
|
with:
|
|
|
|
name: Linux CMake Test Logs
|
|
|
|
path: build-aux/artifacts
|
2022-12-22 17:34:48 +01:00
|
|
|
|
|
|
|
MacOS-Autotools:
|
|
|
|
runs-on: macos-latest
|
|
|
|
steps:
|
|
|
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install Dependencies
|
2023-03-16 14:44:02 +01:00
|
|
|
run: brew install autoconf automake libtool po4a doxygen
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build with full features
|
|
|
|
run: ./build-aux/ci_build.sh -b autotools -p build
|
|
|
|
- name: Test with full features
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -p test -n full_features
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without encoders
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d encoders,shared -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without encoders
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d encoders,shared -p test -n no_encoders
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without decoders
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d decoders,shared -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without decoders
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d decoders,shared -p test -n no_decoders
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without threads
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d threads,shared -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without threads
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d threads,shared -p test -n no_threads
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without BCJ filters
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d bcj,shared,nls -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without BCJ filters
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d bcj,shared,nls -p test -n no_bcj
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without Delta filters
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d delta,shared,nls -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without Delta filters
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -d delta,shared,nls -p test -n no_delta
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without sha256 check
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -c crc32,crc64 -d shared,nls -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without sha256 check
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -c crc32,crc64 -d shared,nls -p test -n no_sha256
|
2023-01-07 04:16:55 +01:00
|
|
|
|
|
|
|
- name: Build without crc64 check
|
2023-01-12 16:43:06 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -c crc32,sha256 -d shared,nls -p build
|
2023-01-07 04:16:55 +01:00
|
|
|
- name: Test without crc64 check
|
2023-02-01 14:36:22 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b autotools -c crc32,sha256 -d shared,nls -p test -n no_crc64
|
|
|
|
|
|
|
|
# Attempt to upload the test logs as artifacts if any step has failed
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
|
|
if: ${{ failure() }}
|
|
|
|
with:
|
|
|
|
name: MacOS Autotools Test Logs
|
|
|
|
path: build-aux/artifacts
|
2022-12-22 17:34:48 +01:00
|
|
|
|
|
|
|
MacOS-CMake:
|
|
|
|
runs-on: macos-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install Dependencies
|
|
|
|
run: brew install cmake
|
|
|
|
- name: Build
|
2023-01-07 14:05:15 +01:00
|
|
|
run: ./build-aux/ci_build.sh -b cmake -p build
|
|
|
|
- name: Test
|
|
|
|
run: ./build-aux/ci_build.sh -b cmake -p test
|
2023-02-01 14:36:22 +01:00
|
|
|
# Attempt to upload the test logs as artifacts if any step has failed
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
|
|
if: ${{ failure() }}
|
|
|
|
with:
|
|
|
|
name: MacOS CMake Test Logs
|
|
|
|
path: build-aux/artifacts
|