From 4ff5db8c2f26773d23afe02c1560b010ea973340 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Tue, 10 Dec 2019 11:35:11 -0800 Subject: [PATCH] Merge master PR build (matrix for Win & Mac) --- .github/workflows/pr_build.yml | 86 +++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/.github/workflows/pr_build.yml b/.github/workflows/pr_build.yml index 256df79738..a0fdc633ce 100644 --- a/.github/workflows/pr_build.yml +++ b/.github/workflows/pr_build.yml @@ -23,70 +23,80 @@ env: PreferredToolArchitecture: X64 jobs: - build_full_mac: - runs-on: macOS-latest + build: + strategy: + matrix: + os: [windows-latest, macOS-latest] + build_type: [full] + fail-fast: false + runs-on: ${{matrix.os}} + if: github.event.action != 'labeled' || github.event.label.name == 'rebuild' steps: + - name: Configure Build Environment 1 + shell: bash + id: buildenv1 + run: | + echo ::set-env name=GIT_COMMIT_SHORT::`echo $GIT_COMMIT | cut -c1-7` + # Linux build variables + if [ "${{ matrix.os }}" = "ubuntu-latest" ]; then + echo ::set-env name=PYTHON_EXEC::python3 + echo ::set-env name=INSTALLER_EXT::tgz + fi + # Mac build variables + if [ "${{ matrix.os }}" = "macOS-latest" ]; then + echo ::set-env name=PYTHON_EXEC::python3 + echo ::set-env name=INSTALLER_EXT::dmg + echo ::set-env name=CMAKE_EXTRA::"-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -G Xcode" + fi + # Windows build variables + if [ "${{ matrix.os }}" = "windows-latest" ]; then + echo ::set-env name=PYTHON_EXEC::python + echo ::set-env name=INSTALLER_EXT::exe + echo ::set-env name=CMAKE_EXTRA::"-A x64" + fi + # Configureation is broken into two steps because you can't set an env var and also reference it in the same step + - name: Configure Build Environment 2 + shell: bash + run: | + echo "${{ steps.buildenv1.outputs.symbols_archive }}" + echo ::set-env name=ARTIFACT_PATTERN::HighFidelity-Beta-*.$INSTALLER_EXT + # Build type variables + echo ::set-env name=INSTALLER::HighFidelity-Beta-$RELEASE_NUMBER-$GIT_COMMIT_SHORT.$INSTALLER_EXT - uses: actions/checkout@v1 with: submodules: true fetch-depth: 1 - name: Create Build Environment - run: cmake -E make_directory ${{runner.workspace}}/build + shell: bash + run: cmake -E make_directory "${{runner.workspace}}/build" - name: Configure CMake working-directory: ${{runner.workspace}}/build - run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -G Xcode -DVCPKG_APPLOCAL_DEPS=OFF - - name: Build Console - working-directory: ${{runner.workspace}}/build - run: cmake --build . --config $BUILD_TYPE --target packaged-server-console + shell: bash + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE $CMAKE_EXTRA - name: Build Application working-directory: ${{runner.workspace}}/build + shell: bash run: cmake --build . --config $BUILD_TYPE --target $APP_NAME - name: Build Domain Server working-directory: ${{runner.workspace}}/build + shell: bash run: cmake --build . --config $BUILD_TYPE --target domain-server - name: Build Assignment Client working-directory: ${{runner.workspace}}/build - run: cmake --build . --config $BUILD_TYPE --target assignment-client - - name: Build Installer - working-directory: ${{runner.workspace}}/build - run: cmake --build . --config $BUILD_TYPE --target package - - build_full_win32: - runs-on: windows-latest - steps: - - uses: actions/checkout@v1 - with: - submodules: true - fetch-depth: 1 - - name: Create Build Environment - run: cmake -E make_directory ${{runner.workspace}}/build - - name: Configure CMake shell: bash - working-directory: ${{runner.workspace}}/build - run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -A x64 + run: cmake --build . --config $BUILD_TYPE --target assignment-client - name: Build Console - shell: bash working-directory: ${{runner.workspace}}/build + shell: bash run: cmake --build . --config $BUILD_TYPE --target packaged-server-console - - name: Build Application - shell: bash - working-directory: ${{runner.workspace}}/build - run: cmake --build . --config $BUILD_TYPE --target $APP_NAME - - name: Build Domain Server - shell: bash - working-directory: ${{runner.workspace}}/build - run: cmake --build . --config $BUILD_TYPE --target domain-server - - name: Build Assignment Client - shell: bash - working-directory: ${{runner.workspace}}/build - run: cmake --build . --config $BUILD_TYPE --target assignment-client - name: Build Installer - shell: bash working-directory: ${{runner.workspace}}/build + shell: bash run: cmake --build . --config $BUILD_TYPE --target package build_full_linux: runs-on: ubuntu-latest + if: github.event.action != 'labeled' || github.event.label.name == 'rebuild' steps: - uses: actions/checkout@v1 with: