############################################################################# # # 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 run: sudo apt-get install -y autoconf automake build-essential po4a autopoint gcc-multilib doxygen # -b specifies the build system to use. # -p specifies the phase (build or test) to help narrow down an error # if one occurs. # # 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: | ./build-aux/ci_build.sh -b autotools -p test -f "-m32" -n 32_bit cd ../xz_build && make distclean - name: Build with full features run: ./build-aux/ci_build.sh -b autotools -p build - name: Test with full features run: ./build-aux/ci_build.sh -b autotools -p test -n full_features - name: Build without encoders run: ./build-aux/ci_build.sh -b autotools -d encoders,shared -p build - name: Test without encoders run: ./build-aux/ci_build.sh -b autotools -d encoders,shared -p test -n no_encoders - name: Build without decoders run: ./build-aux/ci_build.sh -b autotools -d decoders,shared -p build - name: Test without decoders run: ./build-aux/ci_build.sh -b autotools -d decoders,shared -p test -n no_decoders - name: Build without threads run: ./build-aux/ci_build.sh -b autotools -d threads,shared -p build - name: Test without threads run: ./build-aux/ci_build.sh -b autotools -d threads,shared -p test -n no_threads - name: Build without BCJ filters run: ./build-aux/ci_build.sh -b autotools -d bcj,shared,nls -p build - name: Test without BCJ filters run: ./build-aux/ci_build.sh -b autotools -d bcj,shared,nls -p test -n no_bcj - name: Build without Delta filters run: ./build-aux/ci_build.sh -b autotools -d delta,shared,nls -p build - name: Test without Delta filters run: ./build-aux/ci_build.sh -b autotools -d delta,shared,nls -p test -n no_delta - name: Build without sha256 check run: ./build-aux/ci_build.sh -b autotools -c crc32,crc64 -d shared,nls -p build - name: Test without sha256 check run: ./build-aux/ci_build.sh -b autotools -c crc32,crc64 -d shared,nls -p test -n no_sha256 - name: Build without crc64 check run: ./build-aux/ci_build.sh -b autotools -c crc32,sha256 -d shared,nls -p build - name: Test without crc64 check 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 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 run: ./build-aux/ci_build.sh -b cmake -p build - name: Test run: ./build-aux/ci_build.sh -b cmake -p test # 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 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 run: brew install autoconf automake libtool po4a doxygen - name: Build with full features run: ./build-aux/ci_build.sh -b autotools -p build - name: Test with full features run: ./build-aux/ci_build.sh -b autotools -p test -n full_features - name: Build without encoders run: ./build-aux/ci_build.sh -b autotools -d encoders,shared -p build - name: Test without encoders run: ./build-aux/ci_build.sh -b autotools -d encoders,shared -p test -n no_encoders - name: Build without decoders run: ./build-aux/ci_build.sh -b autotools -d decoders,shared -p build - name: Test without decoders run: ./build-aux/ci_build.sh -b autotools -d decoders,shared -p test -n no_decoders - name: Build without threads run: ./build-aux/ci_build.sh -b autotools -d threads,shared -p build - name: Test without threads run: ./build-aux/ci_build.sh -b autotools -d threads,shared -p test -n no_threads - name: Build without BCJ filters run: ./build-aux/ci_build.sh -b autotools -d bcj,shared,nls -p build - name: Test without BCJ filters run: ./build-aux/ci_build.sh -b autotools -d bcj,shared,nls -p test -n no_bcj - name: Build without Delta filters run: ./build-aux/ci_build.sh -b autotools -d delta,shared,nls -p build - name: Test without Delta filters run: ./build-aux/ci_build.sh -b autotools -d delta,shared,nls -p test -n no_delta - name: Build without sha256 check run: ./build-aux/ci_build.sh -b autotools -c crc32,crc64 -d shared,nls -p build - name: Test without sha256 check run: ./build-aux/ci_build.sh -b autotools -c crc32,crc64 -d shared,nls -p test -n no_sha256 - name: Build without crc64 check run: ./build-aux/ci_build.sh -b autotools -c crc32,sha256 -d shared,nls -p build - name: Test without crc64 check 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 MacOS-CMake: runs-on: macos-latest steps: - uses: actions/checkout@v2 - name: Install Dependencies run: brew install cmake - name: Build run: ./build-aux/ci_build.sh -b cmake -p build - name: Test run: ./build-aux/ci_build.sh -b cmake -p test # 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