Build Nightly package #715
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Nightly package | |
on: | |
push: | |
tags: | |
- 'nightly_*' | |
env: | |
QT_VERSION: 5.12.9 | |
jobs: | |
build_linux: | |
strategy: | |
matrix: | |
configuration: [FastDebug, Release] | |
name: Linux | |
runs-on: ubuntu-latest | |
container: ghcr.io/scp-fs2open/linux_build:sha-8a6bbbe | |
steps: | |
# - name: Cache Qt | |
# id: cache-qt-lin | |
# uses: actions/cache@v1 | |
# with: | |
# path: ${{ github.workspace }}/../Qt | |
# key: ${{ runner.os }}-QtCache-${{ env.QT_VERSION }} | |
# - name: Install Qt | |
# uses: jurplel/install-qt-action@v2 | |
# with: | |
# version: ${{ env.QT_VERSION }} | |
# dir: ${{ github.workspace }}/.. | |
# cached: ${{ steps.cache-qt-lin.outputs.cache-hit }} | |
# setup-python: 'false' | |
# aqtversion: ==1.1.3 | |
# seriously, what the fuck why do i have to do this | |
- name: Add curl to the container | |
run: | | |
apt-get update -y | |
apt -y install curl jq | |
- uses: actions/checkout@v1 | |
name: Checkout | |
with: | |
submodules: true | |
- name: Prepare Vulkan SDK | |
uses: humbletim/[email protected] | |
with: | |
vulkan-query-version: 1.3.204.0 | |
vulkan-components: Vulkan-Headers, Vulkan-Loader | |
vulkan-use-cache: true | |
- name: Configure CMake | |
env: | |
CONFIGURATION: ${{ matrix.configuration }} | |
COMPILER: gcc-5 | |
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh | |
- name: Compile | |
working-directory: ./build | |
env: | |
CONFIGURATION: ${{ matrix.configuration }} | |
run: | | |
LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all | |
- name: Run Tests | |
working-directory: ./build | |
env: | |
CONFIGURATION: ${{ matrix.configuration }} | |
XDG_RUNTIME_DIR: /root | |
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh | |
- name: Generate AppImage | |
working-directory: ./build | |
env: | |
CONFIGURATION: ${{ matrix.configuration }} | |
run: $GITHUB_WORKSPACE/ci/linux/generate_appimage.sh $GITHUB_WORKSPACE/build/install | |
- name: Upload build result | |
uses: actions/upload-artifact@v2 | |
with: | |
name: linux-${{ matrix.configuration }} | |
path: ${{ github.workspace }}/build/install/*.AppImage | |
linux_zip: | |
name: Build Linux distribution zip | |
needs: build_linux | |
runs-on: ubuntu-latest | |
container: ghcr.io/scp-fs2open/sftp_upload:sha-748b19d | |
steps: | |
- uses: actions/checkout@v1 | |
name: Checkout | |
with: | |
submodules: true | |
fetch-depth: '0' | |
- name: Download Release builds | |
uses: actions/download-artifact@v1 | |
with: | |
name: linux-Release | |
path: builds | |
- name: Download FastDebug builds | |
uses: actions/download-artifact@v2 | |
with: | |
name: linux-FastDebug | |
path: builds | |
- name: Create Distribution package | |
working-directory: ./builds | |
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Linux | |
- name: Upload result package | |
working-directory: ./builds | |
env: | |
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }} | |
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }} | |
DATACORDER_USER: ${{ secrets.DATACORDER_USER }} | |
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }} | |
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh nightly | |
build_windows: | |
strategy: | |
matrix: | |
configuration: [FastDebug, Release] | |
arch: [Win32, x64] | |
simd: [SSE2] | |
name: Windows | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v1 | |
name: Checkout | |
with: | |
submodules: true | |
# - name: Cache Qt | |
# id: cache-qt-win | |
# uses: actions/cache@v1 | |
# with: | |
# path: ${{ github.workspace }}/../Qt | |
# key: ${{ runner.os }}-${{ matrix.arch }}-QtCache-${{ env.QT_VERSION }} | |
# - name: Install Qt (32 bit) | |
# uses: jurplel/install-qt-action@v2 | |
# if: ${{ matrix.arch == 'Win32' }} | |
# with: | |
# version: ${{ env.QT_VERSION }} | |
# dir: ${{ github.workspace }}/.. | |
# arch: win32_msvc2017 | |
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }} | |
# aqtversion: ==0.8 | |
# - name: Install Qt (64 bit) | |
# uses: jurplel/install-qt-action@v2 | |
# if: ${{ matrix.arch == 'x64' }} | |
# with: | |
# version: ${{ env.QT_VERSION }} | |
# dir: ${{ github.workspace }}/.. | |
# arch: win64_msvc2017_64 | |
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }} | |
# aqtversion: ==0.8 | |
- name: Prepare Vulkan SDK | |
uses: humbletim/[email protected] | |
with: | |
vulkan-query-version: 1.3.204.0 | |
vulkan-components: Vulkan-Headers, Vulkan-Loader | |
vulkan-use-cache: true | |
- name: Configure CMake | |
env: | |
CONFIGURATION: ${{ matrix.configuration }} | |
ARCHITECTURE: ${{ matrix.arch }} | |
SIMD: ${{ matrix.simd }} | |
shell: bash | |
run: | | |
mkdir build | |
cd build | |
if [ "$ARCHITECTURE" = "Win32" ]; then | |
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH="ON" \ | |
-DFSO_USE_VOICEREC="ON" -DMSVC_SIMD_INSTRUCTIONS="$SIMD" \ | |
-DFSO_BUILD_QTFRED=OFF -DFSO_BUILD_TESTS=ON \ | |
-DFSO_INSTALL_DEBUG_FILES="ON" -DFSO_BUILD_WITH_VULKAN="OFF" -A "$ARCHITECTURE" \ | |
-G "Visual Studio 16 2019" -T "v142" .. | |
else | |
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH="ON" \ | |
-DFSO_USE_VOICEREC="ON" -DMSVC_SIMD_INSTRUCTIONS="$SIMD" \ | |
-DFSO_BUILD_QTFRED=OFF -DFSO_BUILD_TESTS=ON \ | |
-DFSO_INSTALL_DEBUG_FILES="ON" -A "$ARCHITECTURE" \ | |
-G "Visual Studio 16 2019" -T "v142" .. | |
fi | |
- name: Compile | |
working-directory: ./build | |
env: | |
CONFIGURATION: ${{ matrix.configuration }} | |
COMPILER: ${{ matrix.compiler }} | |
shell: bash | |
run: | | |
cmake --build . --config "$CONFIGURATION" --target INSTALL -- /verbosity:minimal | |
ls -alR "$(pwd)/install" | |
- name: Run Tests | |
working-directory: ./build | |
env: | |
CONFIGURATION: ${{ matrix.configuration }} | |
shell: bash | |
run: ./bin/$CONFIGURATION/unittests --gtest_shuffle | |
- name: Upload build result | |
uses: actions/upload-artifact@v2 | |
with: | |
name: windows-${{ matrix.configuration }}-${{ matrix.arch }}-${{ matrix.simd }} | |
path: ${{ github.workspace }}/build/install/* | |
windows_zip: | |
name: Build Windows distribution zip | |
needs: build_windows | |
runs-on: ubuntu-latest | |
container: ghcr.io/scp-fs2open/sftp_upload:sha-748b19d | |
strategy: | |
matrix: | |
arch: [Win32, x64] | |
simd: [SSE2] | |
steps: | |
- uses: actions/checkout@v1 | |
name: Checkout | |
with: | |
submodules: true | |
fetch-depth: '0' | |
- name: Download Release builds | |
uses: actions/download-artifact@v1 | |
with: | |
name: windows-Release-${{ matrix.arch }}-${{ matrix.simd }} | |
path: builds | |
- name: Download FastDebug builds | |
uses: actions/download-artifact@v2 | |
with: | |
name: windows-FastDebug-${{ matrix.arch }}-${{ matrix.simd }} | |
path: builds | |
- name: Create Distribution package | |
working-directory: ./builds | |
shell: bash | |
env: | |
ARCH: ${{ matrix.arch }} | |
SIMD: ${{ matrix.simd }} | |
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Windows | |
- name: Upload result package | |
working-directory: ./builds | |
shell: bash | |
env: | |
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }} | |
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }} | |
DATACORDER_USER: ${{ secrets.DATACORDER_USER }} | |
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }} | |
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh nightly | |
build_mac: | |
strategy: | |
matrix: | |
configuration: [FastDebug, Release] | |
compiler: [clang] | |
arch: [x86_64] | |
name: Mac | |
runs-on: macos-latest | |
steps: | |
# - name: Cache Qt | |
# id: cache-qt-mac | |
# uses: actions/cache@v1 | |
# with: | |
# path: ${{ github.workspace }}/../Qt | |
# key: ${{ runner.os }}-QtCache-${{ env.QT_VERSION }} | |
# - name: Install Qt | |
# uses: jurplel/install-qt-action@v2 | |
# with: | |
# version: ${{ env.QT_VERSION }} | |
# dir: ${{ github.workspace }}/.. | |
# cached: ${{ steps.cache-qt-mac.outputs.cache-hit }} | |
# setup-python: 'false' | |
# aqtversion: ==1.1.3 | |
# py7zrversion: '==0.19.*' | |
- uses: actions/checkout@v1 | |
name: Checkout | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Prepare Vulkan SDK | |
uses: humbletim/[email protected] | |
with: | |
vulkan-query-version: 1.3.204.0 | |
vulkan-components: Vulkan-Headers, Vulkan-Loader | |
vulkan-use-cache: true | |
- name: Set up test version | |
shell: bash | |
run: | | |
[[ "${{ github.ref }}" =~ ^refs\/heads\/test\/(.*)$ ]] | |
# Override the revision string so that the builds are named correctly | |
echo "set(FSO_VERSION_REVISION_STR ${BASH_REMATCH[1]})" > "version_override.cmake"] | |
- name: Configure CMake | |
env: | |
CONFIGURATION: ${{ matrix.configuration }} | |
COMPILER: ${{ matrix.compiler }} | |
ARCHITECTURE: ${{ matrix.arch }} | |
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }} | |
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh | |
- name: Compile | |
working-directory: ./build | |
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja all | |
- name: Run Tests | |
working-directory: ./build | |
env: | |
CONFIGURATION: ${{ matrix.configuration }} | |
XDG_RUNTIME_DIR: /root | |
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh | |
- name: Package build result | |
working-directory: ./build | |
run: cd bin && tar -cvzf macos-build.tar *.app | |
- name: Upload build result | |
uses: actions/upload-artifact@v2 | |
with: | |
name: mac-${{ matrix.configuration }} | |
path: ${{ github.workspace }}/build/bin/macos-build.tar | |
mac_zip: | |
name: Build Mac distribution zip | |
needs: build_mac | |
runs-on: ubuntu-latest | |
container: ghcr.io/scp-fs2open/sftp_upload:sha-748b19d | |
steps: | |
- uses: actions/checkout@v2 | |
name: Checkout | |
with: | |
submodules: true | |
fetch-depth: '0' | |
ref: '${{ github.ref }}' | |
- name: Download Release builds | |
uses: actions/download-artifact@v2 | |
with: | |
name: mac-Release | |
path: builds | |
- name: Download FastDebug builds | |
uses: actions/download-artifact@v2 | |
with: | |
name: mac-FastDebug | |
path: builds | |
- name: Create Distribution package | |
working-directory: ./builds | |
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Mac | |
- name: Upload result package | |
working-directory: ./builds | |
env: | |
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }} | |
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }} | |
DATACORDER_USER: ${{ secrets.DATACORDER_USER }} | |
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }} | |
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh nightly |