Skip to content

fix ubuntu version for v2, fix write to conf for windows bundle #322

fix ubuntu version for v2, fix write to conf for windows bundle

fix ubuntu version for v2, fix write to conf for windows bundle #322

Workflow file for this run

---
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-22.04' # for Tauri v1 you could replace this with ubuntu-20.04.
args: '--bundles updater'
- platform: 'windows-latest'
args: '--bundles msi,updater'
- platform: 'macos-latest'
args: '--target universal-apple-darwin --bundles updater'
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 ".productName = \"Tari Universe ${{ env.BETA_STRING }}\"" -i tauri.conf.json
yq eval ".mainBinaryName = \"Tari Universe ${{ env.BETA_STRING }}\"" -i tauri.conf.json
yq eval ".version += \"-${BETA_DATE}\"" -i tauri.conf.json
yq eval ".app.windows[0].title = \"Tari Universe ${{ env.BETA_STRING }} | Testnet\"" -i tauri.conf.json
yq eval ".identifier = \"com.tari.universe.beta\"" -i tauri.conf.json
yq eval ".plugins.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 ".productName = \"Tari Universe\"" -i tauri.conf.json
yq eval ".mainBinaryName = \"Tari Universe\"" -i tauri.conf.json
yq eval ".app.windows[0].title = \"Tari Universe | Testnet\"" -i tauri.conf.json
yq eval ".identifier = \"com.tari.universe\"" -i tauri.conf.json
yq eval ".plugins.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.1-dev \
libappindicator3-dev \
librsvg2-dev \
patchelf \
libprotobuf-dev \
protobuf-compiler
- name: Install dependencies (linux/OpenCL)
if: startsWith(runner.os,'Linux')
run: |
sudo apt-get install --no-install-recommends --assume-yes \
opencl-headers \
ocl-icd-opencl-dev
- 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: Install dependencies (windows/OpenCL)
if: startsWith(runner.os,'Windows')
run: |
vcpkg.exe --triplet=x64-windows install opencl
- 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
echo "LIB=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 '.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_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
NODE_OPTIONS: '--max_old_space_size=4096'
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') }}"