Release Build CI #30
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 GitHub CLI | |
run: | | |
choco install gh | |
- name: Authenticate GitHub CLI | |
run: | | |
echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token | |
- name: Define Release Tag | |
id: release-tag | |
run: echo "RELEASE_TAG=Windows-develop-Release" >> $GITHUB_ENV | |
- name: Download Prebuilt Boost from Thirdparty | |
shell: bash | |
run: | | |
gh release download \ | |
--repo GeniusVentures/thirdparty \ | |
Windows-develop-Release \ | |
--pattern Boost-lib.tar.gz | |
- name: Ensure Directory Exists | |
run: | | |
mkdir -p ${{github.workspace}}/thirdparty/build/Windows/Release | |
- name: Extract Prebuilt Boost | |
run: | | |
tar -xzvf Boost-lib.tar.gz -C ${{github.workspace}}/thirdparty/build/Windows/Release | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- name: Checkout zkLLVM repository | |
uses: actions/checkout@v3 | |
with: | |
path: 'zkLLVM' | |
submodules: "recursive" | |
- name: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/zkLLVM/build/Windows/Release | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/zkLLVM/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}}/zkLLVM/build/Windows/Release | |
run: cmake --build . --config Release -j | |
- name: Create install directory | |
working-directory: ${{github.workspace}}/zkLLVM/build/Windows/Release | |
run: cmake --install . | |
- name: Compressing Build Artifacts | |
working-directory: ${{github.workspace}}/zkLLVM | |
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 !(zkLLVM) .[!.]* ..?* | |
cd $GITHUB_WORKSPACE | |
tar --exclude='zkLLVM/build/Windows/Release/zkLLVM/src' \ | |
--exclude='zkLLVM/build/Windows/Release/zkLLVM/tmp' \ | |
-czvf zkLLVM.tar.gz zkLLVM/ | |
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 zkLLVM.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 libvulkan-dev -y | |
echo "CMAKE_GENERATOR=Ninja" >> $GITHUB_ENV | |
- name: Install GitHub CLI | |
run: | | |
sudo apt install -y gh | |
- name: Authenticate GitHub CLI | |
run: | | |
echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token | |
- name: Define Release Tag | |
id: release-tag | |
run: echo "RELEASE_TAG=Linux-develop-Release" >> $GITHUB_ENV | |
- name: Download Prebuilt Boost from Thirdparty | |
shell: bash | |
run: | | |
gh release download \ | |
--repo GeniusVentures/thirdparty \ | |
Linux-develop-Release \ | |
--pattern Boost-lib.tar.gz | |
- name: Ensure Directory Exists | |
run: | | |
mkdir -p ${{github.workspace}}/thirdparty/build/Linux/Release | |
- name: Extract Prebuilt Boost | |
run: | | |
tar -xzvf Boost-lib.tar.gz -C ${{github.workspace}}/thirdparty/build/Linux/Release | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'zkLLVM' | |
submodules: "recursive" | |
- name: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/zkLLVM/build/Linux/Release | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/zkLLVM/build/Linux/Release | |
run: cmake -S .. -DCMAKE_BUILD_TYPE=Release -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ | |
- name: Compile | |
working-directory: ${{github.workspace}}/zkLLVM/build/Linux/Release | |
run: cmake --build . --config Release -j | |
- name: Install | |
working-directory: ${{github.workspace}}/zkLLVM/build/Linux/Release | |
run: cmake --install . | |
- name: Compressing Build Artifacts | |
working-directory: ${{github.workspace}}/zkLLVM | |
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 !(zkLLVM) .[!.]* ..?* | |
cd ${{github.workspace}} | |
tar --exclude='zkLLVM/build/Linux/Release/zkLLVM/src' \ | |
--exclude='zkLLVM/build/Linux/Release/zkLLVM/tmp' \ | |
-czvf zkLLVM.tar.gz zkLLVM/ | |
- 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 zkLLVM.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-arm64: | |
runs-on: ubuntu-latest | |
env: | |
ANDROID_NDK_HOME: ${{github.workspace}}/android-ndk/android-ndk-r27b | |
ANDROID_TOOLCHAIN: ${{github.workspace}}/android-ndk/android-ndk-r27b/toolchains/llvm/prebuilt/linux-x86_64/bin | |
NDK_URL: "https://dl.google.com/android/repository/android-ndk-r27b-linux.zip" | |
CC: clang | |
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 GitHub CLI | |
run: | | |
sudo apt install -y gh | |
- name: Authenticate GitHub CLI | |
run: | | |
echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token | |
- name: Define Release Tag | |
id: release-tag | |
run: echo "RELEASE_TAG=Android-arm64-v8a-develop-Release" >> $GITHUB_ENV | |
- name: Download Prebuilt Boost from Thirdparty | |
shell: bash | |
run: | | |
gh release download \ | |
--repo GeniusVentures/thirdparty \ | |
Android-develop-Release \ | |
--pattern Boost-lib.tar.gz | |
- name: Ensure Directory Exists | |
run: | | |
mkdir -p ${{github.workspace}}/thirdparty/build/Android/Release/arm64-v8a | |
- name: Extract Prebuilt Boost | |
run: | | |
tar -xzvf Boost-lib.tar.gz -C ${{github.workspace}}/thirdparty/build/Android/Release/arm64-v8a | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'zkLLVM' | |
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: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/zkLLVM/build/Android/Release/arm64-v8a | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/zkLLVM/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}}/zkLLVM/build/Android/Release/arm64-v8a | |
run: make -j8 | |
- name: Install | |
working-directory: ${{github.workspace}}/zkLLVM/build/Android/Release/arm64-v8a | |
run: cmake --install . | |
- name: Compressing Build Artifacts | |
working-directory: ${{github.workspace}}/zkLLVM | |
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 !(zkLLVM) .[!.]* ..?* | |
cd ${{github.workspace}} | |
tar --exclude='zkLLVM/build/Android/Release/zkLLVM/src' \ | |
--exclude='zkLLVM/build/Android/Release/zkLLVM/tmp' \ | |
-czvf zkLLVM.tar.gz zkLLVM/ | |
- 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 zkLLVM.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-arm7: | |
runs-on: ubuntu-latest | |
env: | |
ANDROID_NDK_HOME: ${{github.workspace}}/android-ndk/android-ndk-r27b | |
ANDROID_TOOLCHAIN: ${{github.workspace}}/android-ndk/android-ndk-r27b/toolchains/llvm/prebuilt/linux-x86_64/bin | |
NDK_URL: "https://dl.google.com/android/repository/android-ndk-r27b-linux.zip" | |
CC: clang | |
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 GitHub CLI | |
run: | | |
sudo apt install -y gh | |
- name: Authenticate GitHub CLI | |
run: | | |
echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token | |
- name: Define Release Tag | |
id: release-tag | |
run: echo "RELEASE_TAG=Android-armeabi-v7a-develop-Release" >> $GITHUB_ENV | |
- name: Download Prebuilt Boost from Thirdparty | |
shell: bash | |
run: | | |
gh release download \ | |
--repo GeniusVentures/thirdparty \ | |
Android-develop-Release \ | |
--pattern Boost-lib.tar.gz | |
- name: Ensure Directory Exists | |
run: | | |
mkdir -p ${{github.workspace}}/thirdparty/build/Android/Release/armeabi-v7a | |
- name: Extract Prebuilt Boost | |
run: | | |
tar -xzvf Boost-lib.tar.gz -C ${{github.workspace}}/thirdparty/build/Android/Release/armeabi-v7a | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'zkLLVM' | |
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: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/zkLLVM/build/Android/Release/armeabi-v7a | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/zkLLVM/build/Android/Release/armeabi-v7a | |
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="armeabi-v7a" -DCMAKE_BUILD_TYPE=Release -DCMAKE_ANDROID_NDK=$ANDROID_NDK -DANDROID_TOOLCHAIN=clang -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ | |
- name: Compile | |
working-directory: ${{github.workspace}}/zkLLVM/build/Android/Release/armeabi-v7a | |
run: make -j8 | |
- name: Install | |
working-directory: ${{github.workspace}}/zkLLVM/build/Android/Release/armeabi-v7a | |
run: cmake --install . | |
- name: Compressing Build Artifacts | |
working-directory: ${{github.workspace}}/zkLLVM | |
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 !(armeabi-v7a) .[!.]* ..?* | |
cd armeabi-v7a | |
rm -rf !(zkLLVM) .[!.]* ..?* | |
cd ${{github.workspace}} | |
tar --exclude='zkLLVM/build/Android/Release/zkLLVM/src' \ | |
--exclude='zkLLVM/build/Android/Release/zkLLVM/tmp' \ | |
-czvf zkLLVM.tar.gz zkLLVM/ | |
- name: Set Release Variables | |
id: vars | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
OS_NAME=Android-armeabi-v7a | |
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 zkLLVM.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 | |
- name: Install GitHub CLI | |
run: | | |
brew install gh | |
- name: Authenticate GitHub CLI | |
run: | | |
echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token | |
- name: Define Release Tag | |
id: release-tag | |
run: echo "RELEASE_TAG=OSX-develop-Release" >> $GITHUB_ENV | |
- name: Download Prebuilt Boost from Thirdparty | |
shell: bash | |
run: | | |
gh release download \ | |
--repo GeniusVentures/thirdparty \ | |
OSX-develop-Release \ | |
--pattern Boost-lib.tar.gz | |
- name: Ensure Directory Exists | |
run: | | |
mkdir -p ${{github.workspace}}/thirdparty/build/OSX/Release | |
- name: Extract Prebuilt Boost | |
run: | | |
tar -xzvf Boost-lib.tar.gz -C ${{github.workspace}}/thirdparty/build/OSX/Release | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'zkLLVM' | |
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: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/zkLLVM/build/OSX/Release | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/zkLLVM/build/OSX/Release | |
run: cmake -S .. -DCMAKE_BUILD_TYPE=Release -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ | |
- name: Compile | |
working-directory: ${{github.workspace}}/zkLLVM/build/OSX/Release | |
run: make -j8 | |
- name: Install | |
working-directory: ${{github.workspace}}/zkLLVM/build/OSX/Release | |
run: cmake --install . | |
- name: Compressing Build Artifacts | |
working-directory: ${{github.workspace}}/zkLLVM | |
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 !(zkLLVM) .[!.]* ..?* | |
cd ${{github.workspace}} | |
tar --exclude='zkLLVM/build/OSX/Release/zkLLVM/src' \ | |
--exclude='zkLLVM/build/OSX/Release/zkLLVM/tmp' \ | |
-czvf zkLLVM.tar.gz zkLLVM/ | |
- 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 zkLLVM.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 | |
- name: Install GitHub CLI | |
run: | | |
brew install gh | |
- name: Authenticate GitHub CLI | |
run: | | |
echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token | |
- name: Define Release Tag | |
id: release-tag | |
run: echo "RELEASE_TAG=iOS-develop-Release" >> $GITHUB_ENV | |
- name: Download Prebuilt Boost from Thirdparty | |
shell: bash | |
run: | | |
gh release download \ | |
--repo GeniusVentures/thirdparty \ | |
iOS-develop-Release \ | |
--pattern Boost-lib.tar.gz | |
- name: Ensure Directory Exists | |
run: | | |
mkdir -p ${{github.workspace}}/thirdparty/build/iOS/Release | |
- name: Extract Prebuilt Boost | |
run: | | |
tar -xzvf Boost-lib.tar.gz -C ${{github.workspace}}/thirdparty/build/iOS/Release | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
with: | |
path: 'zkLLVM' | |
submodules: "recursive" | |
- name: Install Ninja | |
run: | | |
brew install ccache ninja | |
echo "CMAKE_GENERATOR=Ninja" >> $GITHUB_ENV | |
- 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: Create Build Directory | |
run: cmake -E make_directory ${{github.workspace}}/zkLLVM/build/iOS/Release | |
- name: Configure CMake | |
working-directory: ${{github.workspace}}/zkLLVM/build/iOS/Release | |
run: cmake -S .. -DCMAKE_BUILD_TYPE=Release -DPLATFORM=OS64 -DTHIRDPARTY_DIR=${{github.workspace}}/thirdparty/ | |
- name: Compile | |
working-directory: ${{github.workspace}}/zkLLVM/build/iOS/Release | |
run: cmake --build . -j --config Release | |
- name: Install | |
working-directory: ${{github.workspace}}/zkLLVM/build/iOS/Release | |
run: cmake --install . | |
- name: Compressing Build Artifacts | |
working-directory: ${{github.workspace}}/zkLLVM | |
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 !(zkLLVM) .[!.]* ..?* | |
cd ${{github.workspace}} | |
tar --exclude='zkLLVM/build/iOS/Release/zkLLVM/src' \ | |
--exclude='zkLLVM/build/iOS/Release/zkLLVM/tmp' \ | |
--exclude='zkLLVM/build/iOS/Release/zkLLVM/Applications' \ | |
-czvf zkLLVM.tar.gz zkLLVM/ | |
- 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 zkLLVM.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 | |