-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[REBASED] wip: update and migrate deps
wip: update dir resolvers wip: move Systray logic to FE wip: updated beta build workflows wip: emit miner metrics
- Loading branch information
1 parent
1149c7d
commit 583e607
Showing
114 changed files
with
4,580 additions
and
4,429 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,228 @@ | ||
--- | ||
name: Beta Release | ||
|
||
on: | ||
push: | ||
paths-ignore: | ||
- '**/*.md' | ||
branches: | ||
- 'beta' | ||
- 'build-*' | ||
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' }} | ||
|
||
permissions: {} | ||
|
||
env: | ||
TS_FEATURES: release-ci-beta | ||
|
||
jobs: | ||
builds: | ||
name: Building ${{ matrix.platform }} (Beta) | ||
permissions: | ||
contents: write | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
include: | ||
- platform: 'ubuntu-22.04' # for Tauri v1 you could replace this with ubuntu-20.04. | ||
args: '' | ||
- platform: 'windows-2019' | ||
args: '--bundles updater,msi' | ||
- 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: Extract branch name | ||
shell: bash | ||
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT | ||
id: extract_branch | ||
- 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 }} | ||
BETA_BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }} | ||
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/${{ env.BETA_BRANCH_NAME }}/.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: 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 [email protected] --locked | ||
- 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: | ||
releaseBody: 'Tari Universe (BETA) - See the assets to download this version and install' | ||
releaseDraft: true | ||
prerelease: true | ||
args: ${{ matrix.args }} --features "${{ env.TS_FEATURES }}" | ||
|
||
- name: Debug step {artifactPaths} | ||
continue-on-error: true | ||
env: | ||
artifactPaths: ${{ steps.build.outputs.artifactPaths }} | ||
path2: ${{ steps.build.outputs.artifactPaths[1] }} | ||
shell: bash | ||
run: echo "Artifact ID from previous job is $artifactPaths | Artifact 1 is $artifactPaths[0] | 2 is $path2" | ||
|
||
- name: Upload BETA 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') }}" |
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
Oops, something went wrong.