Try limiting ram usage with NODE_OPTIONS #54
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
name: Build apps | |
on: | |
push: | |
pull_request: | |
jobs: | |
desktop: | |
name: ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
arch: [x64] | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.x | |
# Windows: Create dev cert for .appx package | |
- name: Create dev cert | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: | | |
$cert = New-SelfSignedCertificate -Subject "CN=9FB02A40-50B6-49F9-92D4-AA9DC9AC1AAB" -TextExtension "2.5.29.37={text}1.3.6.1.5.5.7.3.3" -CertStoreLocation cert:\CurrentUser\My | |
$pwd = ConvertTo-SecureString -String "password" -Force -AsPlainText | |
Export-PfxCertificate -Cert $cert -FilePath apps/desktop/assets/appx/cert.pfx -Password $pwd | |
- name: Install | |
run: npm ci | |
- name: Build | |
run: npm run build:desktop | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pikatorrent-${{ matrix.os }} | |
path: apps/desktop/out/make/**/* | |
# Publish on tags starting with 'v' | |
- name: Publish | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: npm -w @pikatorrent/desktop run publish | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
desktop-aarch64: | |
# The host should always be Linux | |
runs-on: ubuntu-latest | |
name: Build on aarch64 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: uraimo/run-on-arch-action@v2 | |
name: Run commands | |
with: | |
arch: aarch64 | |
distro: ubuntu_latest | |
env: | | |
NODE_OPTIONS: "--max-old-space-size=5120" | |
install: | | |
# install deps | |
apt update | |
apt install -y libcurl4-openssl-dev git cmake build-essential libssl-dev | |
# Install nodejs | |
apt install -y ca-certificates curl gnupg | |
mkdir -p /etc/apt/keyrings | |
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg | |
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list | |
apt update | |
apt install -y nodejs | |
run: | | |
npm -v | |
echo $NODE_OPTIONS | |
echo $(free -m) | |
df -h | |
# Build | |
# git config --global --add safe.directory '*' | |
npm ci | |
npm run build:desktop | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pikatorrent-${{ matrix.os }}-aarch64 | |
path: apps/desktop/out/make/**/* | |
android: | |
name: android | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.x | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "17" | |
distribution: "temurin" | |
- name: Setup Android SDK | |
uses: android-actions/setup-android@v3 | |
- name: Setup EAS | |
uses: expo/expo-github-action@v8 | |
with: | |
eas-version: latest | |
token: ${{ secrets.EXPO_TOKEN }} | |
- name: Install | |
run: npm ci | |
- name: Build preview (.apk) | |
run: npm -w @pikatorrent/app run build:android:preview | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pikatorrent.apk | |
path: apps/app/*.apk | |
# Build production (.aab) on tags starting with 'v' | |
- name: Build production | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: npm -w @pikatorrent/app run build:android:production | |
# Upload production (.aab) on tags starting with 'v' | |
- name: Upload artifacts | |
if: startsWith(github.ref, 'refs/tags/v') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pikatorrent.aab | |
path: apps/app/*.aab | |
web: | |
name: web | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.x | |
- name: Install | |
run: npm ci | |
- name: Build | |
run: npm run build:web | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pikatorrent-web | |
path: apps/app/dist/ |