ci: add missing GitHub Actions setup
(Windows build, upload artifacts, create releases)
This commit is contained in:
parent
4369cd6313
commit
b405eb892a
|
|
@ -9,8 +9,11 @@ jobs:
|
||||||
# Don't cancel the macOS build if the Linux build fails, etc.
|
# Don't cancel the macOS build if the Linux build fails, etc.
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-20.04, macos-11]
|
os: [ubuntu-20.04, macos-11, windows-2019]
|
||||||
use-asan: [YES, NO]
|
use-asan: [YES, NO]
|
||||||
|
exclude:
|
||||||
|
- os: windows-2019
|
||||||
|
use-asan: YES
|
||||||
env:
|
env:
|
||||||
# Expose to the build-*.sh in an environment variable
|
# Expose to the build-*.sh in an environment variable
|
||||||
USE_ASAN: ${{ matrix.use-asan }}
|
USE_ASAN: ${{ matrix.use-asan }}
|
||||||
|
|
@ -19,6 +22,11 @@ jobs:
|
||||||
with:
|
with:
|
||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
|
|
||||||
|
# https://github.com/ilammy/msvc-dev-cmd
|
||||||
|
- name: Setup MSVC environment
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
|
||||||
- name: Linux Build
|
- name: Linux Build
|
||||||
if: runner.os == 'Linux'
|
if: runner.os == 'Linux'
|
||||||
run: |
|
run: |
|
||||||
|
|
@ -31,3 +39,45 @@ jobs:
|
||||||
if: runner.os == 'macOS'
|
if: runner.os == 'macOS'
|
||||||
run: |
|
run: |
|
||||||
./build-osx.sh
|
./build-osx.sh
|
||||||
|
|
||||||
|
- name: Windows Build
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
run: |
|
||||||
|
.\build-windows.ps1
|
||||||
|
|
||||||
|
# Upload artifacts.
|
||||||
|
# These need to be separate, otherwise all of the artifacts are bundled into
|
||||||
|
# one .zip file.
|
||||||
|
|
||||||
|
- name: Upload win64 artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
if: ${{ runner.os == 'Windows' && matrix.use-asan == 'NO' }}
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
build-windows/ericw-tools-*.zip
|
||||||
|
|
||||||
|
- name: Upload Linux artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
if: ${{ runner.os == 'Linux' && matrix.use-asan == 'NO' }}
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
build-linux/ericw-tools-*.zip
|
||||||
|
|
||||||
|
- name: Upload macOS artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
if: ${{ runner.os == 'macOS' && matrix.use-asan == 'NO' }}
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
build-osx/ericw-tools-*.zip
|
||||||
|
|
||||||
|
- name: Create GitHub Release and upload builds
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
if: ${{ startsWith(github.ref, 'refs/tags/') && matrix.use-asan == 'NO' }}
|
||||||
|
with:
|
||||||
|
draft: true
|
||||||
|
files: |
|
||||||
|
build-osx/ericw-tools-*.zip
|
||||||
|
build-linux/ericw-tools-*.zip
|
||||||
|
build-windows/ericw-tools-*.zip
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
# Download embree and tbb
|
||||||
|
Invoke-WebRequest 'https://github.com/embree/embree/releases/download/v3.12.1/embree-3.12.1.x64.vc14.windows.zip' -OutFile 'embree64.zip'
|
||||||
|
7z x embree64.zip -oc:\
|
||||||
|
Invoke-WebRequest 'https://github.com/oneapi-src/oneTBB/releases/download/v2020.2/tbb-2020.2-win.zip' -OutFile 'tbb.zip'
|
||||||
|
7z x tbb.zip -oc:\
|
||||||
|
|
||||||
|
git submodule update --init --recursive
|
||||||
|
|
||||||
|
# Create and activate a Python virtual environment, and install sphinx (for building our documentation)
|
||||||
|
py -m venv ericwtools-env
|
||||||
|
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||||||
|
ericwtools-env\Scripts\Activate.ps1
|
||||||
|
python.exe -m pip install sphinx_rtd_theme
|
||||||
|
|
||||||
|
# Confirm Sphinx is installed
|
||||||
|
get-command sphinx-build
|
||||||
|
|
||||||
|
choco install ninja
|
||||||
|
|
||||||
|
mkdir build-windows
|
||||||
|
cd build-windows
|
||||||
|
|
||||||
|
cmake .. -GNinja -Dembree_DIR="C:\embree-3.12.1.x64.vc14.windows" -DTBB_DIR="C:\tbb\cmake" -DCMAKE_BUILD_TYPE=Release
|
||||||
|
|
||||||
|
ninja
|
||||||
|
if ( $? -eq $false ) {
|
||||||
|
throw "build failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
cpack
|
||||||
|
if ( $? -eq $false ) {
|
||||||
|
throw "package failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
.\tests\Release\tests.exe
|
||||||
|
|
||||||
|
if ( $? -eq $false ) {
|
||||||
|
throw "tests failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
# run hidden tests (releaseonly)
|
||||||
|
.\tests\Release\tests.exe [.]
|
||||||
|
|
||||||
|
if ( $? -eq $false ) {
|
||||||
|
throw "tests [.] failed"
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
Reference in New Issue