Dev testmodels + GetBlocks + Other fixes + Tests #460
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: Release Build CI | |
# Controls when the workflow will run | |
# Triggers the workflow on push or pull request events and manually from the Actions tab | |
on: | |
push: | |
branches: | |
- develop | |
- main | |
pull_request: | |
branches: | |
- develop | |
- main | |
workflow_dispatch: | |
jobs: | |
Windows: | |
runs-on: windows-latest | |
steps: | |
- name: Get branch name | |
id: branch-name | |
uses: tj-actions/branch-names@v6 | |
- name: Install Windows host dependencies | |
run: | | |
choco install ccache -A | |
- name: Install bindgen | |
run: cargo install cbindgen | |
- name: Add Rust wasm target | |
run: rustup target add wasm32-unknown-emscripten | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- name: Checkout SuperGenius repository | |
uses: actions/checkout@v3 | |
with: | |
path: 'SuperGenius' | |
submodules: "recursive" | |
- name: Check if branch exists in thirdparty | |
id: check_branch | |
uses: tj-actions/branch-names@v6 | |
with: | |
repo: 'GeniusVentures/thirdparty' | |
branch: ${{ steps.branch-name.outputs.current_branch }} | |
- name: Check out thirdparty repository | |
uses: actions/checkout@v3 | |
with: | |
repository: 'GeniusVentures/thirdparty' | |
path: 'thirdparty' | |
submodules: 'recursive' | |
ref: ${{ steps.check_branch.outputs.branch_exists == 'true' && steps.branch-name.outputs.current_branch || 'develop' }} | |
- name: Thirdparty Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/thirdparty/build/Windows/Release | |
- name: Thirdparty Configure CMake | |
working-directory: ${{github.workspace}}/thirdparty/build/Windows/Release | |
run: cmake -S .. -DCMAKE_BUILD_TYPE=Release | |
- name: Thirdparty Compile | |
working-directory: ${{github.workspace}}/thirdparty/build/Windows/Release | |
run: cmake --build . --config Release -j | |
- name: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/build/Windows/Release | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/SuperGenius/build/Windows/Release | |
run: cmake -S .. -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ | |
- name: Compile | |
working-directory: ${{github.workspace}}/SuperGenius/build/Windows/Release | |
run: cmake --build . --config Release -j | |
- name: Create install directory | |
working-directory: ${{github.workspace}}/SuperGenius/build/Windows/Release | |
run: cmake --install . | |
- name: Compressing Build Artifacts | |
working-directory: ${{github.workspace}}/SuperGenius | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
shopt -s extglob | |
rm -rf !(build) .[!.]* ..?* | |
cd build | |
rm -rf !(Windows) .[!.]* ..?* | |
cd Windows | |
rm -rf !(Release) .[!.]* ..?* | |
cd Release | |
rm -rf !(SuperGenius) .[!.]* ..?* | |
cd $GITHUB_WORKSPACE | |
tar -czvf SuperGenius.tar.gz SuperGenius/ | |
shell: bash | |
- name: Set Release Variables | |
id: vars | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
OS_NAME=Windows | |
BRANCH_NAME=${GITHUB_REF#refs/heads/} | |
BUILD_TYPE=Release | |
FILE_NAME="${OS_NAME}-${BRANCH_NAME}-${BUILD_TYPE}.tar.gz" | |
echo "RELEASE_TAG=${OS_NAME}-${BRANCH_NAME}-${BUILD_TYPE}-${GITHUB_SHA::7}" >> $GITHUB_ENV | |
echo "RELEASE_NAME=${OS_NAME} ${BRANCH_NAME} ${BUILD_TYPE} (${GITHUB_SHA::7})" >> $GITHUB_ENV | |
echo "FILE_NAME=$FILE_NAME" >> $GITHUB_ENV | |
shell: bash | |
- name: Rename Artifact | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: mv SuperGenius.tar.gz ${{ env.FILE_NAME }} | |
shell: bash | |
- name: Create GitHub Release | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GNUS_TOKEN_1 }} | |
with: | |
tag_name: ${{ env.RELEASE_TAG }} | |
release_name: ${{ env.RELEASE_NAME }} | |
draft: false | |
prerelease: false | |
- name: Upload Release Asset | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GNUS_TOKEN_1 }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ${{ env.FILE_NAME }} | |
asset_name: ${{ env.FILE_NAME }} | |
asset_content_type: application/gzip | |
Linux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get branch name | |
id: branch-name | |
uses: tj-actions/branch-names@v6 | |
- name: Set clang as the default compiler | |
run: | | |
sudo update-alternatives --install /usr/bin/cc cc $(which clang) 100 | |
sudo update-alternatives --install /usr/bin/c++ c++ $(which clang++) 100 | |
sudo update-alternatives --set cc $(which clang) | |
sudo update-alternatives --set c++ $(which clang++) | |
- name: Install Linux host dependencies | |
run: | | |
sudo apt install ccache ninja-build -y | |
sudo apt install vulkan-tools vulkan-validationlayers-dev libvulkan-dev -y | |
echo "CMAKE_GENERATOR=Ninja" >> $GITHUB_ENV | |
- name: Install bindgen | |
run: cargo install cbindgen | |
- name: Add Rust wasm target | |
run: rustup target add wasm32-unknown-emscripten | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'SuperGenius' | |
submodules: "recursive" | |
- name: Check if branch exists in thirdparty | |
id: check_branch | |
uses: tj-actions/branch-names@v6 | |
with: | |
repo: 'GeniusVentures/thirdparty' | |
branch: ${{ steps.branch-name.outputs.current_branch }} | |
- name: Check out thirdparty repository | |
uses: actions/checkout@v3 | |
with: | |
repository: 'GeniusVentures/thirdparty' | |
path: 'thirdparty' | |
submodules: 'recursive' | |
ref: ${{ steps.check_branch.outputs.branch_exists == 'true' && steps.branch-name.outputs.current_branch || 'develop' }} | |
- name: Thirdparty Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/thirdparty/build/Linux/Release | |
- name: Thirdparty Configure CMake | |
working-directory: ${{github.workspace}}/thirdparty/build/Linux/Release | |
run: cmake -S .. -DCMAKE_BUILD_TYPE=Release | |
- name: Thirdparty Compile | |
working-directory: ${{github.workspace}}/thirdparty/build/Linux/Release | |
run: cmake --build . --config Release -j | |
- name: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/build/Linux/Release | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/SuperGenius/build/Linux/Release | |
run: cmake -S .. -DCMAKE_BUILD_TYPE=Release -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ | |
- name: Compile | |
working-directory: ${{github.workspace}}/SuperGenius/build/Linux/Release | |
run: cmake --build . --config Release -j | |
- name: Install | |
working-directory: ${{github.workspace}}/SuperGenius/build/Linux/Release | |
run: cmake --install . | |
- name: Compressing Build Artifacts | |
working-directory: ${{github.workspace}}/SuperGenius | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
shopt -s extglob | |
rm -rf !(build) .[!.]* ..?* | |
cd build | |
rm -rf !(Linux) .[!.]* ..?* | |
cd Linux | |
rm -rf !(Release) .[!.]* ..?* | |
cd Release | |
rm -rf !(SuperGenius) .[!.]* ..?* | |
cd ${{github.workspace}} | |
tar -czvf SuperGenius.tar.gz SuperGenius/ | |
- name: Set Release Variables | |
id: vars | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
OS_NAME=Linux | |
BRANCH_NAME=${GITHUB_REF#refs/heads/} | |
BUILD_TYPE=Release | |
FILE_NAME="${OS_NAME}-${BRANCH_NAME}-${BUILD_TYPE}.tar.gz" | |
echo "RELEASE_TAG=${OS_NAME}-${BRANCH_NAME}-${BUILD_TYPE}-${GITHUB_SHA::7}" >> $GITHUB_ENV | |
echo "RELEASE_NAME=${OS_NAME} ${BRANCH_NAME} ${BUILD_TYPE} (${GITHUB_SHA::7})" >> $GITHUB_ENV | |
echo "FILE_NAME=$FILE_NAME" >> $GITHUB_ENV | |
- name: Rename Artifact | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: mv SuperGenius.tar.gz ${{ env.FILE_NAME }} | |
- name: Create GitHub Release | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GNUS_TOKEN_1 }} | |
with: | |
tag_name: ${{ env.RELEASE_TAG }} | |
release_name: ${{ env.RELEASE_NAME }} | |
draft: false | |
prerelease: false | |
- name: Upload Release Asset | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GNUS_TOKEN_1 }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ${{ env.FILE_NAME }} | |
asset_name: ${{ env.FILE_NAME }} | |
asset_content_type: application/gzip | |
Android: | |
runs-on: ubuntu-latest | |
env: | |
ANDROID_NDK_HOME: ${{github.workspace}}/android-ndk/android-ndk-r25b | |
ANDROID_TOOLCHAIN: ${{github.workspace}}/android-ndk/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin | |
NDK_URL: "https://dl.google.com/android/repository/android-ndk-r25b-linux.zip" | |
CC: clang | |
steps: | |
- name: Get branch name | |
id: branch-name | |
uses: tj-actions/branch-names@v6 | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'SuperGenius' | |
submodules: "recursive" | |
- name: Download Android NDK | |
run: | | |
mkdir "${{github.workspace}}/android-ndk" | |
cd "${{github.workspace}}/android-ndk" | |
curl -o ndk.zip ${{ env.NDK_URL }} | |
unzip ndk.zip | |
rm ndk.zip | |
- name: Install bindgen | |
run: cargo install cbindgen | |
- name: Add Rust wasm target | |
run: rustup target add wasm32-unknown-emscripten | |
- name: Add Android toolchain | |
run: | | |
rustup target add aarch64-linux-android | |
- name: Check if branch exists in thirdparty | |
id: check_branch | |
uses: tj-actions/branch-names@v6 | |
with: | |
repo: 'GeniusVentures/thirdparty' | |
branch: ${{ steps.branch-name.outputs.current_branch }} | |
- name: Check out thirdparty repository | |
uses: actions/checkout@v3 | |
with: | |
repository: 'GeniusVentures/thirdparty' | |
path: 'thirdparty' | |
submodules: 'recursive' | |
ref: ${{ steps.check_branch.outputs.branch_exists == 'true' && steps.branch-name.outputs.current_branch || 'develop' }} | |
- name: Thirdparty Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/thirdparty/build/Android/Release/arm64-v8a | |
- name: Thirdparty Configure CMake | |
working-directory: ${{github.workspace}}/thirdparty/build/Android/Release/arm64-v8a | |
run: | | |
export ANDROID_NDK=${{env.ANDROID_NDK_HOME}} | |
export ANDROID_NDK_HOME=${{env.ANDROID_NDK_HOME}} | |
export ANDROID_TOOLCHAIN=${{env.ANDROID_TOOLCHAIN}} | |
export PATH=${{env.ANDROID_TOOLCHAIN}}:$PATH | |
echo $PATH | |
echo $CC | |
ls -la $ANDROID_TOOLCHAIN | |
echo "Check clang path:" | |
which clang | |
env | |
cmake -S ../../ -DANDROID_ABI="arm64-v8a" -DCMAKE_ANDROID_NDK=$ANDROID_NDK -DANDROID_TOOLCHAIN=clang -DCMAKE_BUILD_TYPE=Release | |
- name: Thirdparty Compile | |
working-directory: ${{github.workspace}}/thirdparty/build/Android/Release/arm64-v8a | |
run: make -j8 | |
- name: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/build/Android/Release/arm64-v8a | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/SuperGenius/build/Android/Release/arm64-v8a | |
run: | | |
export ANDROID_NDK=${{env.ANDROID_NDK_HOME}} | |
export ANDROID_NDK_HOME=${{env.ANDROID_NDK_HOME}} | |
export ANDROID_TOOLCHAIN=${{env.ANDROID_TOOLCHAIN}} | |
export PATH=${{env.ANDROID_TOOLCHAIN}}:$PATH | |
echo $PATH | |
echo $CC | |
ls -la $ANDROID_TOOLCHAIN | |
echo "Check clang path:" | |
which clang | |
env | |
cmake -S ../../ -DANDROID_ABI="arm64-v8a" -DCMAKE_BUILD_TYPE=Release -DCMAKE_ANDROID_NDK=$ANDROID_NDK -DANDROID_TOOLCHAIN=clang -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ | |
- name: Compile | |
working-directory: ${{github.workspace}}/SuperGenius/build/Android/Release/arm64-v8a | |
run: make -j8 | |
- name: Install | |
working-directory: ${{github.workspace}}/SuperGenius/build/Android/Release/arm64-v8a | |
run: cmake --install . | |
- name: Compressing Build Artifacts | |
working-directory: ${{github.workspace}}/SuperGenius | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
shopt -s extglob | |
rm -rf !(build) .[!.]* ..?* | |
cd build | |
rm -rf !(Android) .[!.]* ..?* | |
cd Android | |
rm -rf !(Release) .[!.]* ..?* | |
cd Release | |
rm -rf !(arm64-v8a) .[!.]* ..?* | |
cd arm64-v8a | |
rm -rf !(SuperGenius) .[!.]* ..?* | |
cd ${{github.workspace}} | |
tar -czvf SuperGenius.tar.gz SuperGenius/ | |
- name: Set Release Variables | |
id: vars | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
OS_NAME=Android-arm64-v8a | |
BRANCH_NAME=${GITHUB_REF#refs/heads/} | |
BUILD_TYPE=Release | |
FILE_NAME="${OS_NAME}-${BRANCH_NAME}-${BUILD_TYPE}.tar.gz" | |
echo "RELEASE_TAG=${OS_NAME}-${BRANCH_NAME}-${BUILD_TYPE}-${GITHUB_SHA::7}" >> $GITHUB_ENV | |
echo "RELEASE_NAME=${OS_NAME} ${BRANCH_NAME} ${BUILD_TYPE} (${GITHUB_SHA::7})" >> $GITHUB_ENV | |
echo "FILE_NAME=$FILE_NAME" >> $GITHUB_ENV | |
- name: Rename Artifact | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: mv SuperGenius.tar.gz ${{ env.FILE_NAME }} | |
- name: Create GitHub Release | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GNUS_TOKEN_1 }} | |
with: | |
tag_name: ${{ env.RELEASE_TAG }} | |
release_name: ${{ env.RELEASE_NAME }} | |
draft: false | |
prerelease: false | |
- name: Upload Release Asset | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GNUS_TOKEN_1 }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ${{ env.FILE_NAME }} | |
asset_name: ${{ env.FILE_NAME }} | |
asset_content_type: application/gzip | |
MacOS: | |
runs-on: macos-latest | |
steps: | |
- name: Get branch name | |
id: branch-name | |
uses: tj-actions/branch-names@v6 | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'SuperGenius' | |
submodules: "recursive" | |
# Workaround for arm64 build | |
- name: Ensure latest macOS SDK is used | |
run: | | |
sudo xcode-select --switch "$(find /Applications -mindepth 1 -maxdepth 1 ! -type l | grep "Xcode_[\.0-9]*app" | sort -V | tail -1)/Contents/Developer" | |
sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/* | |
- name: Install bindgen | |
run: cargo install cbindgen | |
- name: Add Rust wasm target | |
run: rustup target add wasm32-unknown-emscripten | |
- name: Add Darwin rust toolchain | |
run: rustup target add x86_64-apple-darwin | |
- name: Check if branch exists in thirdparty | |
id: check_branch | |
uses: tj-actions/branch-names@v6 | |
with: | |
repo: 'GeniusVentures/thirdparty' | |
branch: ${{ steps.branch-name.outputs.current_branch }} | |
- name: Check out thirdparty repository | |
uses: actions/checkout@v3 | |
with: | |
repository: 'GeniusVentures/thirdparty' | |
path: 'thirdparty' | |
submodules: 'recursive' | |
ref: ${{ steps.check_branch.outputs.branch_exists == 'true' && steps.branch-name.outputs.current_branch || 'develop' }} | |
- name: Thirdparty Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/thirdparty/build/OSX/Release | |
- name: Thirdparty Configure CMake | |
working-directory: ${{github.workspace}}/thirdparty/build/OSX/Release | |
run: cmake -S .. -DCMAKE_BUILD_TYPE=Release | |
- name: Thirdparty Compile | |
working-directory: ${{github.workspace}}/thirdparty/build/OSX/Release | |
run: make -j8 | |
- name: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/build/OSX/Release | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/SuperGenius/build/OSX/Release | |
run: cmake -S .. -DCMAKE_BUILD_TYPE=Release -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ | |
- name: Compile | |
working-directory: ${{github.workspace}}/SuperGenius/build/OSX/Release | |
run: make -j8 | |
- name: Install | |
working-directory: ${{github.workspace}}/SuperGenius/build/OSX/Release | |
run: cmake --install . | |
- name: Compressing Build Artifacts | |
working-directory: ${{github.workspace}}/SuperGenius | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
shopt -s extglob | |
rm -rf !(build) .[!.]* ..?* | |
cd build | |
rm -rf !(OSX) .[!.]* ..?* | |
cd OSX | |
rm -rf !(Release) .[!.]* ..?* | |
cd Release | |
rm -rf !(SuperGenius) .[!.]* ..?* | |
cd ${{github.workspace}} | |
tar -czvf SuperGenius.tar.gz SuperGenius/ | |
- name: Set Release Variables | |
id: vars | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
OS_NAME=OSX | |
BRANCH_NAME=${GITHUB_REF#refs/heads/} | |
BUILD_TYPE=Release | |
FILE_NAME="${OS_NAME}-${BRANCH_NAME}-${BUILD_TYPE}.tar.gz" | |
echo "RELEASE_TAG=${OS_NAME}-${BRANCH_NAME}-${BUILD_TYPE}-${GITHUB_SHA::7}" >> $GITHUB_ENV | |
echo "RELEASE_NAME=${OS_NAME} ${BRANCH_NAME} ${BUILD_TYPE} (${GITHUB_SHA::7})" >> $GITHUB_ENV | |
echo "FILE_NAME=$FILE_NAME" >> $GITHUB_ENV | |
- name: Rename Artifact | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: mv SuperGenius.tar.gz ${{ env.FILE_NAME }} | |
- name: Create GitHub Release | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GNUS_TOKEN_1 }} | |
with: | |
tag_name: ${{ env.RELEASE_TAG }} | |
release_name: ${{ env.RELEASE_NAME }} | |
draft: false | |
prerelease: false | |
- name: Upload Release Asset | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GNUS_TOKEN_1 }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ${{ env.FILE_NAME }} | |
asset_name: ${{ env.FILE_NAME }} | |
asset_content_type: application/gzip | |
iOS: | |
runs-on: macos-latest | |
steps: | |
- name: Get branch name | |
id: branch-name | |
uses: tj-actions/branch-names@v6 | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'SuperGenius' | |
submodules: "recursive" | |
- name: Install Ninja | |
run: | | |
brew install ccache ninja | |
echo "CMAKE_GENERATOR=Ninja" >> $GITHUB_ENV | |
- name: Install bindgen | |
run: cargo install cbindgen | |
- name: Add Rust wasm target | |
run: rustup target add wasm32-unknown-emscripten | |
- name: Add iOS toolchain | |
run: | | |
rustup toolchain install nightly-aarch64-apple-darwin | |
rustup component add rust-src --toolchain nightly-aarch64-apple-darwin | |
rustup target add aarch64-apple-ios | |
- name: Check if branch exists in thirdparty | |
id: check_branch | |
uses: tj-actions/branch-names@v6 | |
with: | |
repo: 'GeniusVentures/thirdparty' | |
branch: ${{ steps.branch-name.outputs.current_branch }} | |
- name: Check out thirdparty repository | |
uses: actions/checkout@v3 | |
with: | |
repository: 'GeniusVentures/thirdparty' | |
path: 'thirdparty' | |
submodules: 'recursive' | |
ref: ${{ steps.check_branch.outputs.branch_exists == 'true' && steps.branch-name.outputs.current_branch || 'develop' }} | |
- name: Thirdparty Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/thirdparty/build/iOS/Release | |
- name: Thirdparty Configure CMake | |
working-directory: ${{github.workspace}}/thirdparty/build/iOS/Release | |
run: cmake -S .. -DCMAKE_BUILD_TYPE=Release -DPLATFORM=OS64 | |
- name: Thirdparty Compile | |
working-directory: ${{github.workspace}}/thirdparty/build/iOS/Release | |
run: cmake --build . -j --config Release | |
- name: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/SuperGenius/build/iOS/Release | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/SuperGenius/build/iOS/Release | |
run: cmake -S .. -DCMAKE_BUILD_TYPE=Release -DPLATFORM=OS64 -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ | |
- name: Compile | |
working-directory: ${{github.workspace}}/SuperGenius/build/iOS/Release | |
run: cmake --build . -j --config Release | |
- name: Install | |
working-directory: ${{github.workspace}}/SuperGenius/build/iOS/Release | |
run: cmake --install . | |
- name: Compressing Build Artifacts | |
working-directory: ${{github.workspace}}/SuperGenius | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
shopt -s extglob | |
rm -rf !(build) .[!.]* ..?* | |
cd build | |
rm -rf !(iOS) .[!.]* ..?* | |
cd iOS | |
rm -rf !(Release) .[!.]* ..?* | |
cd Release | |
rm -rf !(SuperGenius) .[!.]* ..?* | |
cd ${{github.workspace}} | |
tar -czvf SuperGenius.tar.gz SuperGenius/ | |
- name: Set Release Variables | |
id: vars | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
OS_NAME=iOS | |
BRANCH_NAME=${GITHUB_REF#refs/heads/} | |
BUILD_TYPE=Release | |
FILE_NAME="${OS_NAME}-${BRANCH_NAME}-${BUILD_TYPE}.tar.gz" | |
echo "RELEASE_TAG=${OS_NAME}-${BRANCH_NAME}-${BUILD_TYPE}-${GITHUB_SHA::7}" >> $GITHUB_ENV | |
echo "RELEASE_NAME=${OS_NAME} ${BRANCH_NAME} ${BUILD_TYPE} (${GITHUB_SHA::7})" >> $GITHUB_ENV | |
echo "FILE_NAME=$FILE_NAME" >> $GITHUB_ENV | |
- name: Rename Artifact | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: mv SuperGenius.tar.gz ${{ env.FILE_NAME }} | |
- name: Create GitHub Release | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GNUS_TOKEN_1 }} | |
with: | |
tag_name: ${{ env.RELEASE_TAG }} | |
release_name: ${{ env.RELEASE_NAME }} | |
draft: false | |
prerelease: false | |
- name: Upload Release Asset | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GNUS_TOKEN_1 }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ${{ env.FILE_NAME }} | |
asset_name: ${{ env.FILE_NAME }} | |
asset_content_type: application/gzip | |