Skip to content

Release Build CI

Release Build CI #30

Workflow file for this run

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