Skip to content

Build Desktop Test (v2) #79

Build Desktop Test (v2)

Build Desktop Test (v2) #79

name: Build Desktop Test (v2)
on:
schedule:
# 12:00AM (UTC) Sunday
- cron: '0 0 * * SUN'
jobs:
build:
runs-on: ${{ matrix.os }}
if: ${{ always() }}
strategy:
matrix:
os: [ ubuntu-20.04, macos-12, windows-2019 ]
fail-fast: true
env:
VERSION: '2.1.3-test'
STAGE: 'prod'
steps:
- uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18.15.0
# Used to read the `binding.gyp` file from `@iota/wallet`
- name: Set up Python 3.10
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
- name: Install LLVM and Clang (Windows) # required for bindgen to work, see https://github.com/rust-lang/rust-bindgen/issues/1797
uses: KyleMayes/install-llvm-action@32c4866ebb71e0949e8833eb49beeebed48532bd
if: matrix.os == 'windows-2019'
with:
version: '11.0'
directory: ${{ runner.temp }}/llvm
- name: Set LIBCLANG_PATH (Windows)
run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV
if: matrix.os == 'windows-2019'
- name: Set deployment target (macOS)
run: echo "MACOSX_DEPLOYMENT_TARGET=10.14" >> $GITHUB_ENV # TODO: set this to 10.12 once rocksDB issue is fixed
if: matrix.os == 'macos-12'
- name: Install required packages (Linux)
run: |
sudo apt update
sudo apt install -y gcc-multilib g++-multilib build-essential libssl-dev rpm libsecret-1-dev \
software-properties-common apt-transport-https libudev-dev libusb-1.0-0-dev \
llvm-dev libclang-dev clang
if: matrix.os == 'ubuntu-20.04'
- name: Enable verbose output for electron-builder (macOS/Linux)
run: echo "DEBUG=electron-builder" >> $GITHUB_ENV
if: matrix.os != 'windows-2019' && github.event.inputs.debugElectronBuilder && github.event.inputs.debugElectronBuilder == 'true'
- name: Enable verbose output for electron-builder (Windows)
run: echo "DEBUG=electron-builder" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
if: matrix.os == 'windows-2019' && github.event.inputs.debugElectronBuilder && github.event.inputs.debugElectronBuilder == 'true'
- name: Install dependencies
# Increase network timeout threshold to reduce build failures on Windows
run: yarn --network-timeout 1000000
- name: Install Sentry CLI
# Yarn has issues putting binaries in the PATH on Windows
run: npm i -g @sentry/cli
if: ${{ startsWith(github.ref, 'refs/tags/desktop') && matrix.os == 'windows-2019' }}
- name: Set productName
run: node scripts/fix-productName.js
working-directory: packages/desktop
- name: Bundle desktop JS
run: yarn build:${STAGE}
working-directory: packages/desktop
shell: bash
env:
HARDCODE_NODE_ENV: true
SENTRY: ${{ startsWith(github.ref, 'refs/tags/desktop') }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN_PROD_DESKTOP }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
AMPLITUDE_API_KEY: ${{ secrets.AMPLITUDE_API_KEY }}
- name: Build Electron app (macOS)
run: yarn compile:${STAGE}:mac
env:
CSC_LINK: ${{ secrets.MAC_CERT_BASE64 }}
CSC_KEY_PASSWORD: ${{ secrets.MAC_CERT_PASSWORD }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
working-directory: packages/desktop
if: matrix.os == 'macos-12'
- name: Build Electron app (Windows)
run: yarn compile:${env:STAGE}:win
env:
CSC_LINK: ${{ secrets.WIN_CERT_BASE64 }}
CSC_KEY_PASSWORD: ${{ secrets.WIN_CERT_PASSWORD }}
working-directory: packages/desktop
if: matrix.os == 'windows-2019'
- name: Build Electron app (Linux)
run: yarn compile:${STAGE}:linux
working-directory: packages/desktop
if: matrix.os == 'ubuntu-20.04'