diff --git a/scripts/shell/extract_build.sh b/.github/scripts/releases/extract_build_linux.sh similarity index 100% rename from scripts/shell/extract_build.sh rename to .github/scripts/releases/extract_build_linux.sh diff --git a/.github/scripts/releases/extract_build_windows.sh b/.github/scripts/releases/extract_build_windows.sh new file mode 100755 index 0000000000..c89efb8cf5 --- /dev/null +++ b/.github/scripts/releases/extract_build_windows.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -e + +DEST=${1} +SOURCE=${2} + +mkdir -p $DEST + +cp $SOURCE/build/bin/gk.exe $DEST +cp $SOURCE/build/bin/goalc.exe $DEST +cp $SOURCE/build/bin/extractor.exe $DEST + +mkdir -p $DEST/data +mkdir -p $DEST/data/decompiler/ +mkdir -p $DEST/data/assets +mkdir -p $DEST/data/game +mkdir -p $DEST/data/log +mkdir -p $DEST/data/game/graphics/opengl_renderer/ + +cp -r $SOURCE/decompiler/config $DEST/data/decompiler/ +cp -r $SOURCE/goal_src $DEST/data +cp -r $SOURCE/game/assets $DEST/data/game/ +cp -r $SOURCE/game/graphics/opengl_renderer/shaders $DEST/data/game/graphics/opengl_renderer diff --git a/.github/scripts/releases/upload-release-artifacts/index.js b/.github/scripts/releases/upload-release-artifacts/index.js index be7b65f0e0..c8bd86ad4d 100644 --- a/.github/scripts/releases/upload-release-artifacts/index.js +++ b/.github/scripts/releases/upload-release-artifacts/index.js @@ -111,9 +111,7 @@ const { data: releaseAssetsPost } = await octokit.rest.repos.listReleaseAssets({ // Expected Assets, if we have all of them, we will publish it let expectedAssets = { - "windows-decompiler": false, - "windows-gk": false, - "windows-goalc": false, + "windows": false, "linux" : false, } diff --git a/.github/workflows/linux-workflow.yaml b/.github/workflows/linux-workflow.yaml index 923da57237..d5dc0e570b 100644 --- a/.github/workflows/linux-workflow.yaml +++ b/.github/workflows/linux-workflow.yaml @@ -53,7 +53,7 @@ jobs: cache_key: ${{ matrix.os }}-${{ matrix.compiler }} - name: CMake Generation - Clang - if: matrix.compiler == 'clang' + if: matrix.compiler == 'clang' && !startsWith(github.ref, 'refs/tags/') run: | export CC=clang export CXX=clang++ @@ -64,6 +64,18 @@ jobs: -DCMAKE_CXX_COMPILER_LAUNCHER="${{ github.workspace }}"/buildcache/bin/buildcache \ -DCODE_COVERAGE=ON -DASAN_BUILD=ON + - name: CMake Generation - Clang - No ASAN + if: matrix.compiler == 'clang' && startsWith(github.ref, 'refs/tags/') + run: | + export CC=clang + export CXX=clang++ + cmake -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_FOR_RELEASE=ON \ + -DCMAKE_C_COMPILER_LAUNCHER="${{ github.workspace }}"/buildcache/bin/buildcache \ + -DCMAKE_CXX_COMPILER_LAUNCHER="${{ github.workspace }}"/buildcache/bin/buildcache \ + -DCODE_COVERAGE=ON -DASAN_BUILD=OFF + - name: CMake Generation - GCC if: matrix.compiler == 'gcc' run: | @@ -88,7 +100,7 @@ jobs: run: ./test_code_coverage.sh - name: Submit Coverage Report to Codacy - if: ${{ matrix.compiler }} == 'gcc' + if: matrix.compiler == 'gcc' uses: codacy/codacy-coverage-reporter-action@v1 continue-on-error: true with: @@ -101,7 +113,7 @@ jobs: if: github.repository == 'open-goal/jak-project' && startsWith(github.ref, 'refs/tags/') && matrix.compiler == 'clang' run: | mkdir -p ./ci-artifacts/out - ./scripts/shell/extract_build.sh ./ci-artifacts/out ./ + ./.github/scripts/releases/extract_build_linux.sh ./ci-artifacts/out ./ tar czf ./ci-artifacts/linux.tar.gz ./ci-artifacts/out - name: Upload Assets and Potential Publish Release diff --git a/.github/workflows/windows-workflow.yaml b/.github/workflows/windows-workflow.yaml index 8f8f24f040..bd05aaac15 100644 --- a/.github/workflows/windows-workflow.yaml +++ b/.github/workflows/windows-workflow.yaml @@ -81,19 +81,18 @@ jobs: # ---- Release / Tagging related steps ---- - name: Prepare Build Artifacts if: github.repository == 'open-goal/jak-project' && startsWith(github.ref, 'refs/tags/') && matrix.compiler == 'clang' + shell: bash run: | - mkdir -p ./ci-artifacts/ - cp ./build/bin/decompiler.exe ./ci-artifacts/windows-decompiler.exe - cp ./build/bin/gk.exe ./ci-artifacts/windows-gk.exe - cp ./build/bin/goalc.exe ./ci-artifacts/windows-goalc.exe - ls ./ci-artifacts/ + mkdir -p ./ci-artifacts/out + ./.github/scripts/releases/extract_build_windows.sh ./ci-artifacts/out ./ + zip -r ./ci-artifacts/windows.zip ./ci-artfacts/out - name: Upload Assets and Potential Publish Release if: github.repository == 'open-goal/jak-project' && startsWith(github.ref, 'refs/tags/') && matrix.compiler == 'clang' env: GITHUB_TOKEN: ${{ secrets.BOT_PAT }} ASSET_DIR: ${{ github.WORKSPACE }}/ci-artifacts - ASSET_EXTENSION: exe + ASSET_EXTENSION: zip TAG_TO_SEARCH_FOR: ${{ github.REF }} run: | cd ./.github/scripts/releases/upload-release-artifacts diff --git a/.gitignore b/.gitignore index dcf0cd6b67..1ea801c871 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,4 @@ texture_replacements/* # generated cmake files svnrev.h +ci-artifacts/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 69e689aea1..cdbcc6e5d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,7 +70,7 @@ elseif(MSVC) endif() # c++ flags for all build types set(CMAKE_CXX_FLAGS "/EHsc /utf-8 /arch:AVX") - + # linker flags set(CMAKE_EXE_LINKER_FLAGS "/STACK:16000000,16384") endif()