Skip to content

Merge pull request #276 from REChain-Network-Solutions/dependabot/npm… #574

Merge pull request #276 from REChain-Network-Solutions/dependabot/npm…

Merge pull request #276 from REChain-Network-Solutions/dependabot/npm… #574

name: Multi-Platform Builds
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
jobs:
build-web:
name: Build Web
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build for web
run: npm run build:web
- name: Upload web build artifacts
uses: actions/upload-artifact@v5
with:
name: web-build
path: dist/
build-ios:
name: Build iOS
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build for iOS
run: npm run build:ios
- name: Upload iOS build artifacts
uses: actions/upload-artifact@v5
with:
name: ios-build
path: dist-ios/
build-macos:
name: Build macOS
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build for macOS
run: npm run build:macos
- name: Upload macOS build artifacts
uses: actions/upload-artifact@v5
with:
name: macos-build
path: builds/macos/
build-windows:
name: Build Windows
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build for Windows
run: npm run build:windows
- name: Upload Windows build artifacts
uses: actions/upload-artifact@v5
with:
name: windows-build
path: builds/windows/
build-linux:
name: Build Linux
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build for Linux
run: npm run build:linux
- name: Upload Linux build artifacts
uses: actions/upload-artifact@v5
with:
name: linux-build
path: builds/linux/
build-winuwp:
name: Build WinUWP
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build for WinUWP
run: npm run build:winuwp
- name: Upload WinUWP build artifacts
uses: actions/upload-artifact@v5
with:
name: winuwp-build
path: dist-winuwp/
build-android:
name: Build Android
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
- name: Setup Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '17'
- name: Install dependencies
run: npm ci
- name: Build for Android
run: npm run build:android
- name: Upload Android build artifacts
uses: actions/upload-artifact@v5
with:
name: android-build
path: platforms/android/build/
build-tizen:
name: Build Tizen
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
- name: Install Tizen CLI
run: npm install -g tizen-cli
- name: Install dependencies
run: npm ci
- name: Build for Tizen
run: npm run build:tizen
- name: Upload Tizen build artifacts
uses: actions/upload-artifact@v5
with:
name: tizen-build
path: platforms/tizen/build/
build-flutter:
name: Build Flutter
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Install dependencies
run: npm ci
- name: Build for Flutter
run: npm run build:flutter
- name: Upload Flutter build artifacts
uses: actions/upload-artifact@v5
with:
name: flutter-build
path: platforms/flutter/build/
build-tvos:
name: Build tvOS
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build for tvOS
run: npm run build:tvos
- name: Upload tvOS build artifacts
uses: actions/upload-artifact@v5
with:
name: tvos-build
path: platforms/tvos/build/
build-aurora:
name: Build Aurora
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build for Aurora
run: npm run build:aurora
- name: Upload Aurora build artifacts
uses: actions/upload-artifact@v5
with:
name: aurora-build
path: dist-aurora/
build-harmonyos:
name: Build HarmonyOS
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build for HarmonyOS
run: npm run build:harmonyos
- name: Upload HarmonyOS build artifacts
uses: actions/upload-artifact@v5
with:
name: harmonyos-build
path: platforms/harmonyos/build/
deploy-web:
name: Deploy Web to GitHub Pages
runs-on: ubuntu-latest
needs: build-web
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Download web build artifacts
uses: actions/download-artifact@v6
with:
name: web-build
path: dist/
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist