Skip to content

Remove password-based wallet authentication system, fix visual issues, and ensure consistent theme implementation #131

Remove password-based wallet authentication system, fix visual issues, and ensure consistent theme implementation

Remove password-based wallet authentication system, fix visual issues, and ensure consistent theme implementation #131

name: Build All Platforms
on:
push:
branches: [ main, develop ]
tags: [ 'v*' ]
pull_request:
branches: [ main ]
release:
types: [ published ]
workflow_dispatch:
jobs:
build-web:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Install dependencies
run: |
for i in 1 2 3; do
yarn install --frozen-lockfile && break || sleep 10
done
- name: Build web application
run: ./scripts/build-web.sh
- name: Upload web artifacts
uses: actions/upload-artifact@v4
with:
name: web-build
path: deploy_*/
retention-days: 30
build-extensions:
runs-on: ubuntu-latest
needs: build-web
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Install dependencies
run: |
for i in 1 2 3; do
yarn install --frozen-lockfile && break || sleep 10
done
- name: Build browser extensions
run: ./scripts/build-extensions.sh
- name: Upload extension artifacts
uses: actions/upload-artifact@v4
with:
name: browser-extensions
path: |
extension/*.zip
extension/extension-build-info.txt
retention-days: 30
build-android:
runs-on: ubuntu-latest
needs: build-web
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'release'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
- name: Install dependencies
run: |
for i in 1 2 3; do
yarn install --frozen-lockfile && break || sleep 10
done
- name: Build mobile applications
run: ./scripts/build-mobile.sh
- name: Upload Android artifacts
uses: actions/upload-artifact@v4
with:
name: android-builds
path: |
android/app/build/outputs/apk/**/*.apk
android/app/build/outputs/bundle/**/*.aab
retention-days: 30
build-native-linux:
runs-on: ubuntu-latest
needs: build-web
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'release'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libnss3-dev libatk-bridge2.0-dev libdrm2 libxkbcommon-dev libgtk-3-dev libgbm-dev libasound2-dev rpm fakeroot dpkg
- name: Install dependencies
run: |
for i in 1 2 3; do
yarn install --frozen-lockfile && break || sleep 10
done
- name: Build web application
run: yarn build
- name: Build Linux native applications
run: ./scripts/build-native-linux.sh
- name: Upload Linux native artifacts
uses: actions/upload-artifact@v4
with:
name: linux-native-builds
path: |
native-builds/linux/
retention-days: 30
build-native-windows:
runs-on: windows-latest
needs: build-web
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'release'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Install dependencies
shell: bash
run: |
for i in 1 2 3; do
yarn install --frozen-lockfile && break || sleep 10
done
- name: Build web application
run: yarn build
- name: Build Windows native applications
run: ./scripts/build-native-windows.sh
shell: bash
- name: Upload Windows native artifacts
uses: actions/upload-artifact@v4
with:
name: windows-native-builds
path: |
native-builds/windows/
retention-days: 30
build-native-macos:
runs-on: macos-latest
needs: build-web
if: (github.ref == 'refs/heads/main' && github.event_name == 'push') || startsWith(github.ref, 'refs/tags/v') || github.event_name == 'release'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Install dependencies
run: |
for i in 1 2 3; do
yarn install --frozen-lockfile && break || sleep 10
done
- name: Build web application
run: yarn build
- name: Build macOS native applications
run: ./scripts/build-native-macos.sh
- name: Upload macOS native artifacts
uses: actions/upload-artifact@v4
with:
name: macos-native-builds
path: |
native-builds/macos/
retention-days: 30
build-all-platforms:
runs-on: ubuntu-latest
if: github.event_name == 'release'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
- name: Install dependencies
run: |
for i in 1 2 3; do
yarn install --frozen-lockfile && break || sleep 10
done
- name: Build all platforms
run: ./scripts/build-all-platforms.sh
- name: Upload complete build artifacts
uses: actions/upload-artifact@v4
with:
name: complete-build-${{ github.sha }}
path: |
artifacts_*/
svmseek-wallet-*.tar.gz
retention-days: 90
- name: Upload to release
if: github.event_name == 'release'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./svmseek-wallet-*.tar.gz
asset_name: svmseek-wallet-all-platforms.tar.gz
asset_content_type: application/gzip
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Install dependencies
run: |
for i in 1 2 3; do
yarn install --frozen-lockfile && break || sleep 10
done
- name: Run tests
run: yarn test --watchAll=false --coverage
- name: Install Playwright
run: yarn playwright:install
- name: Run E2E tests
run: yarn test:e2e
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: test-results
path: |
coverage/
playwright-report/
retention-days: 7