chore(release): v0.5.43 #226
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 | |
'on': | |
push: | |
paths-ignore: | |
- '**/*.md' | |
# tags: | |
# - 'v[0-9]+.[0-9]+.[0-9]+' | |
branches: | |
- 'release' | |
- 'beta' | |
- 'build-*' | |
schedule: | |
- cron: "05 00 * * *" | |
workflow_dispatch: | |
concurrency: | |
# https://docs.github.com/en/actions/examples/using-concurrency-expressions-and-a-test-matrix | |
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' | |
cancel-in-progress: ${{ !startsWith(github.ref, 'refs/tags/v') || github.ref != 'refs/heads/main' || github.ref != 'refs/heads/release' }} | |
permissions: {} | |
env: | |
TS_FEATURES: release-ci | |
jobs: | |
builds: | |
name: Building ${{ matrix.platform }} | |
permissions: | |
contents: write | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- platform: 'ubuntu-20.04' | |
args: '' | |
- platform: 'windows-2019' | |
args: '--bundles msi,updater' | |
- platform: 'macos-latest' | |
args: '--target universal-apple-darwin' | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: beta builds - Install dependencies (windows) [yq] | |
if: ${{ startsWith(runner.os,'Windows') }} | |
run: | | |
choco upgrade yq -y | |
- name: beta builds - Install dependencies (linux) [yq] | |
if: ${{ startsWith(runner.os,'Linux') }} | |
shell: bash | |
run: | | |
sudo bash ./scripts/check-get-yq.sh | |
- name: Set environment variables for beta builds | |
if: ${{ ( github.event_name == 'schedule' ) || ( ! startsWith(github.ref, 'refs/heads/release') ) }} | |
env: | |
BETA_STRING: "(Beta)" | |
AIRDROP_BASE_URL: ${{ secrets.BETA_AIRDROP_BASE_URL }} | |
AIRDROP_API_BASE_URL: ${{ secrets.BETA_AIRDROP_API_BASE_URL }} | |
AIRDROP_TWITTER_AUTH_URL: ${{ secrets.BETA_AIRDROP_TWITTER_AUTH_URL }} | |
shell: bash | |
run: | | |
#set -xueo pipefail | |
echo "TARI_NETWORK=esme" >> $GITHUB_ENV | |
echo "TARI_TARGET_NETWORK=testnet" >> $GITHUB_ENV | |
echo "AIRDROP_BASE_URL=${{ env.AIRDROP_BASE_URL }}" >> $GITHUB_ENV | |
echo "AIRDROP_API_BASE_URL=${{ env.AIRDROP_API_BASE_URL }}" >> $GITHUB_ENV | |
echo "AIRDROP_TWITTER_AUTH_URL=${{ env.AIRDROP_TWITTER_AUTH_URL }}" >> $GITHUB_ENV | |
echo "TS_FEATURES=release-ci-beta, airdrop-env" >> $GITHUB_ENV | |
#export BETA_DATE=$(date +%Y-%m-%d) | |
# numeric-only and cannot be greater than 65535 for msi target | |
export BETA_DATE=4$(date +%m%d) | |
cd "${GITHUB_WORKSPACE}/src-tauri" | |
echo "releaseName=Tari Universe ${{ env.BETA_STRING }} v__VERSION__-${BETA_DATE}" >> $GITHUB_ENV | |
# Don't mess with the double quotes and inner escaped quotes | |
yq eval ".package.productName = \"Tari Universe ${{ env.BETA_STRING }}\"" -i tauri.conf.json | |
yq eval ".package.version += \"-${BETA_DATE}\"" -i tauri.conf.json | |
yq eval ".tauri.windows[0].title = \"Tari Universe ${{ env.BETA_STRING }} | Testnet\"" -i tauri.conf.json | |
yq eval ".tauri.bundle.identifier = \"com.tari.universe.beta\"" -i tauri.conf.json | |
yq eval ".tauri.updater.endpoints = [\"https://raw.githubusercontent.com/tari-project/universe/main/.updater/beta-latest.json\"]" \ | |
-i tauri.conf.json | |
cat tauri.conf.json | |
sed -i.bak -E "s/^version\s*=\s*\"([0-9]+\.[0-9]+\.[0-9]+)\"/version = \"\1-${BETA_DATE}\"/" \ | |
Cargo.toml | |
cat Cargo.toml | |
sed -i.bak -e "s/\"icons\//\"beta-icons\//g" tauri.conf.json | |
- name: Set environment variables for RELEASE builds | |
if: ${{ startsWith(github.ref, 'refs/heads/release') }} | |
shell: bash | |
run: | | |
#set -xueo pipefail | |
# Setup tauri action envs | |
echo "tagName=v__VERSION__" >> $GITHUB_ENV | |
echo "releaseName=Tari Universe v__VERSION__" >> $GITHUB_ENV | |
#echo "releaseId=" >> $GITHUB_ENV | |
echo "TARI_NETWORK=nextnet" >> $GITHUB_ENV | |
echo "TARI_TARGET_NETWORK=nextnet" >> $GITHUB_ENV | |
cd "${GITHUB_WORKSPACE}/src-tauri" | |
# Don't mess with the double quotes and inner escaped quotes | |
yq eval ".package.productName = \"Tari Universe\"" -i tauri.conf.json | |
yq eval ".tauri.windows[0].title = \"Tari Universe | Testnet\"" -i tauri.conf.json | |
yq eval ".tauri.bundle.identifier = \"com.tari.universe\"" -i tauri.conf.json | |
yq eval ".tauri.updater.endpoints = [\"https://raw.githubusercontent.com/tari-project/universe/main/.updater/latest.json\"]" \ | |
-i tauri.conf.json | |
- name: Node.js setup | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: 'npm' | |
- name: Rust setup (linux) | |
if: startsWith(runner.os,'Linux') | |
uses: dtolnay/rust-toolchain@stable | |
env: | |
RUSTUP_PERMIT_COPY_RENAME: true | |
with: | |
toolchain: stable | |
target: aarch64-unknown-linux-gnu | |
- name: Rust setup (macOS) | |
if: startsWith(runner.os,'macOS') | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
target: aarch64-apple-darwin,x86_64-apple-darwin | |
- name: Cache cargo files and outputs | |
if: ${{ ( ! startsWith(github.ref, 'refs/heads/release') ) && ( ! startsWith(github.ref, 'refs/tags/v') ) }} | |
uses: swatinem/rust-cache@v2 | |
with: | |
workspaces: './src-tauri -> target' | |
- name: Install dependencies (linux) | |
if: startsWith(runner.os,'Linux') | |
run: | | |
sudo apt-get update | |
sudo apt-get install --no-install-recommends --assume-yes \ | |
libwebkit2gtk-4.0-dev \ | |
libappindicator3-dev \ | |
librsvg2-dev \ | |
patchelf \ | |
libprotobuf-dev \ | |
protobuf-compiler | |
- name: Install dependencies (macOS) | |
if: startsWith(runner.os,'macOS') | |
run: | | |
# openssl, cmake and autoconf already installed | |
brew install zip coreutils automake protobuf libtool | |
# force install rust OSX multi-arch components | |
cd src-tauri | |
rustup target add x86_64-apple-darwin | |
rustup target add aarch64-apple-darwin | |
rustup toolchain install stable-x86_64-apple-darwin --force-non-host | |
rustup toolchain install stable-aarch64-apple-darwin --force-non-host | |
- name: Install dependencies (windows) | |
if: startsWith(runner.os,'Windows') | |
run: | | |
vcpkg.exe install sqlite3:x64-windows zlib:x64-windows | |
choco upgrade protoc -y | |
- name: Set environment variables (windows) | |
if: startsWith(runner.os,'Windows') | |
shell: bash | |
run: | | |
echo "SQLITE3_LIB_DIR=C:\vcpkg\installed\x64-windows\lib" >> $GITHUB_ENV | |
- name: Azure code-signing setup (windows only) | |
if: ${{ ( startsWith(runner.os,'Windows') ) && ( env.AZURE_TENANT_ID != '' ) }} | |
shell: bash | |
env: | |
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} | |
WINDOWS_SIGN_COMMAND: trusted-signing-cli -e https://eus.codesigning.azure.net/ -a Tari -c Tarilabs %1 | |
run: | | |
cd "${GITHUB_WORKSPACE}/src-tauri" | |
echo "{}" | \ | |
jq '.tauri .bundle .windows += {"signCommand": "${{ env.WINDOWS_SIGN_COMMAND }}"}' > \ | |
./tauri.windows.conf.json | |
cat ./tauri.windows.conf.json | |
cargo install trusted-signing-cli | |
- name: Install dependencies (node) | |
run: | | |
npm --version | |
npm install | |
- name: Build Tauri apps | |
id: build | |
uses: tauri-apps/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE || secrets.AZURE_TENANT_ID }} | |
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} | |
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} | |
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} | |
APPLE_ID: ${{ secrets.APPLE_ID }} | |
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} | |
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
AZURE_TENANT_ID: ${{ startsWith(runner.os,'Windows') && secrets.AZURE_TENANT_ID }} | |
AZURE_CLIENT_ID: ${{ startsWith(runner.os,'Windows') && secrets.AZURE_CLIENT_ID }} | |
AZURE_CLIENT_SECRET: ${{ startsWith(runner.os,'Windows') && secrets.AZURE_CLIENT_SECRET }} | |
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} | |
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} | |
with: | |
tagName: ${{ env.tagName }} | |
releaseName: ${{ env.releaseName }} | |
releaseBody: 'Tari Universe - See the assets to download this version and install' | |
# releaseId: ${{ env.releaseId }} | |
releaseDraft: true | |
prerelease: true | |
includeDebug: false | |
includeRelease: true | |
args: ${{ matrix.args }} --features "${{ env.TS_FEATURES }}" | |
- name: Debug step {artifactPaths} | |
if: ${{ false }} | |
continue-on-error: true | |
env: | |
artifactPaths: ${{ steps.build.outputs.artifactPaths }} | |
shell: bash | |
run: echo "Artifact ID from previous job is $artifactPaths" | |
- name: Upload none releases | |
if: ${{ ( github.event_name == 'schedule' ) || ( ! startsWith(github.ref, 'refs/heads/release') ) }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tari-universe-beta_${{ steps.build.outputs.appVersion }}_${{ matrix.platform }} | |
path: "${{ join(fromJSON(steps.build.outputs.artifactPaths), '\n') }}" |