190 lines
5.7 KiB
YAML
190 lines
5.7 KiB
YAML
name: Build
|
|
|
|
on: [push, pull_request, workflow_dispatch]
|
|
|
|
jobs:
|
|
regular:
|
|
runs-on: ubuntu-latest
|
|
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install Requirements
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install -y gcc g++ libtiff-dev libwebp-dev libzstd-dev
|
|
|
|
- name: Build and run tests
|
|
run: |
|
|
./tools/travis-ci/install.sh
|
|
./tools/travis-ci/run.sh
|
|
env:
|
|
OPJ_CI_ARCH: x86_64
|
|
OPJ_CI_BUILD_CONFIGURATION: Release
|
|
OPJ_CI_PERF_TESTS: 1
|
|
OPJ_CI_BUILD_FUZZERS: 1
|
|
OPJ_CI_INCLUDE_IF_DEPLOY: 1
|
|
OPJ_NONCOMMERCIAL: 1
|
|
|
|
- name: Release
|
|
uses: softprops/action-gh-release@v1
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
with:
|
|
files: build/openjpeg-*.tar.gz
|
|
|
|
asan:
|
|
runs-on: ubuntu-latest
|
|
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install Requirements
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install -y gcc g++
|
|
|
|
- name: Build and run tests
|
|
run: |
|
|
./tools/travis-ci/install.sh
|
|
./tools/travis-ci/run.sh
|
|
env:
|
|
OPJ_CI_ARCH: x86_64
|
|
OPJ_CI_BUILD_CONFIGURATION: Debug
|
|
OPJ_CI_ASAN: 1
|
|
OPJ_NONCOMMERCIAL: 1
|
|
|
|
clang_32bit:
|
|
runs-on: ubuntu-latest
|
|
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install Requirements
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install -y clang gcc-multilib
|
|
|
|
- name: Build and run tests
|
|
run: |
|
|
./tools/travis-ci/install.sh
|
|
./tools/travis-ci/run.sh
|
|
env:
|
|
OPJ_CI_CC: clang
|
|
OPJ_CI_CXX: clang++
|
|
OPJ_CI_INSTRUCTION_SETS: "-mavx2"
|
|
OPJ_CI_BUILD_CONFIGURATION: Release
|
|
OPJ_CI_ARCH: i386
|
|
OPJ_NUM_THREADS: 2
|
|
OPJ_NONCOMMERCIAL: 1
|
|
|
|
mingw_64:
|
|
runs-on: ubuntu-latest
|
|
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install Requirements
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install -y gcc-mingw-w64-base binutils-mingw-w64-x86-64 gcc-mingw-w64-x86-64 gcc-mingw-w64 g++-mingw-w64-x86-64
|
|
|
|
- name: Build and run tests
|
|
run: |
|
|
./tools/travis-ci/install.sh
|
|
./tools/travis-ci/run.sh
|
|
env:
|
|
OPJ_CI_CC: x86_64-w64-mingw32-gcc
|
|
OPJ_CI_CXX: x86_64-w64-mingw32-g++
|
|
OPJ_CI_ARCH: x86_64
|
|
OPJ_CI_BUILD_CONFIGURATION: Release
|
|
OPJ_NONCOMMERCIAL: 1
|
|
|
|
macos:
|
|
runs-on: macos-latest
|
|
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Build and run tests
|
|
run: |
|
|
./tools/travis-ci/install.sh
|
|
./tools/travis-ci/run.sh
|
|
env:
|
|
OPJ_CI_ARCH: x86_64
|
|
OPJ_CI_BUILD_CONFIGURATION: Release
|
|
OPJ_CI_INCLUDE_IF_DEPLOY: 1
|
|
#OPJ_NONCOMMERCIAL: 1
|
|
|
|
- name: Release
|
|
uses: softprops/action-gh-release@v1
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
with:
|
|
files: build/openjpeg-*.zip
|
|
|
|
windows_build:
|
|
runs-on: windows-latest
|
|
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
|
|
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- VS_VER: 2019
|
|
OPJ_CI_ARCH: x64
|
|
OPJ_CI_INCLUDE_IF_DEPLOY: 1
|
|
- VS_VER: 2019
|
|
OPJ_CI_ARCH: x86
|
|
OPJ_CI_INCLUDE_IF_DEPLOY: 1
|
|
- VS_VER: 2019
|
|
OPJ_CI_ARCH: x64
|
|
# We do have specific failures noted in tools/travis-ci/knownfailures-windows-vs2015-x64-avx2-Release-3rdP.txt
|
|
# not sure why that happens
|
|
OPJ_CI_INSTRUCTION_SETS: "/arch:AVX2"
|
|
|
|
env:
|
|
VS_VER: ${{ matrix.VS_VER }}
|
|
OPJ_CI_ARCH: ${{ matrix.OPJ_CI_ARCH }}
|
|
OPJ_CI_INCLUDE_IF_DEPLOY: ${{ matrix.OPJ_CI_INCLUDE_IF_DEPLOY }}
|
|
OPJ_CI_INSTRUCTION_SETS: ${{ matrix.OPJ_CI_INSTRUCTION_SETS }}
|
|
#OPJ_NONCOMMERCIAL: 1
|
|
|
|
steps:
|
|
|
|
- name: Setup git
|
|
run: |
|
|
git config --global core.autocrlf false
|
|
git config --system core.longpaths true
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set compiler environment
|
|
shell: cmd
|
|
run: |
|
|
if "%VS_VER%" == "2019" CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=%OPJ_CI_ARCH%
|
|
echo PATH=%PATH%>> %GITHUB_ENV%
|
|
echo INCLUDE=%INCLUDE%>> %GITHUB_ENV%
|
|
echo LIB=%LIB%>> %GITHUB_ENV%
|
|
echo LIBPATH=%LIBPATH%>> %GITHUB_ENV%
|
|
|
|
- name: Install wget
|
|
shell: cmd
|
|
run: |
|
|
choco install wget --no-progress
|
|
|
|
- name: Build and run tests
|
|
run: |
|
|
./tools/travis-ci/install.sh
|
|
./tools/travis-ci/run.sh
|
|
shell: bash
|
|
|
|
- name: Release
|
|
uses: softprops/action-gh-release@v1
|
|
if: ${{startsWith(github.ref, 'refs/tags/') && env.OPJ_CI_INCLUDE_IF_DEPLOY == 1}}
|
|
with:
|
|
files: build/openjpeg-*.zip
|