Reset to parent
This commit is contained in:
@@ -6,22 +6,20 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
prepare:
|
||||||
runs-on: windows
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
defaults:
|
outputs:
|
||||||
run:
|
release_tag: ${{ steps.version.outputs.release_tag }}
|
||||||
shell: powershell
|
release_name: ${{ steps.version.outputs.release_name }}
|
||||||
|
release_version: ${{ steps.version.outputs.release_version }}
|
||||||
|
release_id: ${{ steps.release.outputs.release_id }}
|
||||||
|
release_download_url: ${{ steps.release.outputs.release_download_url }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: https://github.com/actions/checkout@v4
|
uses: https://github.com/actions/checkout@v4
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
npm ci --include=dev
|
|
||||||
npm --prefix server ci --include=dev
|
|
||||||
|
|
||||||
- name: Resolve release version
|
- name: Resolve release version
|
||||||
id: version
|
id: version
|
||||||
run: node tools/resolve-release-version.js --write-output
|
run: node tools/resolve-release-version.js --write-output
|
||||||
@@ -40,16 +38,111 @@ jobs:
|
|||||||
--body "Automated draft release from ${{ github.ref_name }} @ ${{ github.sha }}"
|
--body "Automated draft release from ${{ github.ref_name }} @ ${{ github.sha }}"
|
||||||
--write-output
|
--write-output
|
||||||
|
|
||||||
|
build-linux:
|
||||||
|
needs: prepare
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: https://github.com/actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
env:
|
||||||
|
NODE_ENV: development
|
||||||
|
run: |
|
||||||
|
npm install
|
||||||
|
npm install --prefix server
|
||||||
|
|
||||||
- name: Set CI release version
|
- name: Set CI release version
|
||||||
run: >
|
run: >
|
||||||
node tools/set-release-version.js
|
node tools/set-release-version.js
|
||||||
--version "${{ steps.version.outputs.release_version }}"
|
--version "${{ needs.prepare.outputs.release_version }}"
|
||||||
|
|
||||||
|
- name: Build application
|
||||||
|
run: |
|
||||||
|
npx esbuild node_modules/@timephy/rnnoise-wasm/dist/NoiseSuppressorWorklet.js --bundle --format=esm --outfile=public/rnnoise-worklet.js
|
||||||
|
npx ng build --configuration production --base-href='./'
|
||||||
|
npx --package typescript tsc -p tsconfig.electron.json
|
||||||
|
cd server
|
||||||
|
node ../tools/sync-server-build-version.js
|
||||||
|
npx --package typescript tsc
|
||||||
|
|
||||||
- name: Build Linux assets
|
- name: Build Linux assets
|
||||||
run: npm run release:build:linux
|
run: |
|
||||||
|
npx electron-builder --linux --publish never
|
||||||
|
node tools/package-server-executable.js --target node18-linux-x64 --output metoyou-server-linux-x64
|
||||||
|
|
||||||
|
- name: Upload Linux assets
|
||||||
|
env:
|
||||||
|
GITEA_RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
||||||
|
run: >
|
||||||
|
node tools/gitea-release.js upload-built-assets
|
||||||
|
--server-url "${{ github.server_url }}"
|
||||||
|
--repository "${{ github.repository }}"
|
||||||
|
--release-id "${{ needs.prepare.outputs.release_id }}"
|
||||||
|
--dist-electron dist-electron
|
||||||
|
--dist-server dist-server
|
||||||
|
|
||||||
|
build-windows:
|
||||||
|
needs: prepare
|
||||||
|
runs-on: windows
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: powershell
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: https://github.com/actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
env:
|
||||||
|
NODE_ENV: development
|
||||||
|
run: |
|
||||||
|
npm install
|
||||||
|
npm install --prefix server
|
||||||
|
|
||||||
|
- name: Set CI release version
|
||||||
|
run: >
|
||||||
|
node tools/set-release-version.js
|
||||||
|
--version "${{ needs.prepare.outputs.release_version }}"
|
||||||
|
|
||||||
|
- name: Build application
|
||||||
|
run: |
|
||||||
|
npx esbuild node_modules/@timephy/rnnoise-wasm/dist/NoiseSuppressorWorklet.js --bundle --format=esm --outfile=public/rnnoise-worklet.js
|
||||||
|
npx ng build --configuration production --base-href='./'
|
||||||
|
npx --package typescript tsc -p tsconfig.electron.json
|
||||||
|
Push-Location server
|
||||||
|
node ../tools/sync-server-build-version.js
|
||||||
|
npx --package typescript tsc
|
||||||
|
Pop-Location
|
||||||
|
|
||||||
- name: Build Windows assets
|
- name: Build Windows assets
|
||||||
run: npm run release:build:win
|
run: |
|
||||||
|
npx electron-builder --win --publish never
|
||||||
|
node tools/package-server-executable.js --target node18-win-x64 --output metoyou-server-win-x64.exe
|
||||||
|
|
||||||
|
- name: Upload Windows assets
|
||||||
|
env:
|
||||||
|
GITEA_RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
||||||
|
run: >
|
||||||
|
node tools/gitea-release.js upload-built-assets
|
||||||
|
--server-url "${{ github.server_url }}"
|
||||||
|
--repository "${{ github.repository }}"
|
||||||
|
--release-id "${{ needs.prepare.outputs.release_id }}"
|
||||||
|
--dist-electron dist-electron
|
||||||
|
--dist-server dist-server
|
||||||
|
|
||||||
|
finalize:
|
||||||
|
needs: [prepare, build-linux, build-windows]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: https://github.com/actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm install --omit=dev
|
||||||
|
|
||||||
- name: Download previous manifest
|
- name: Download previous manifest
|
||||||
env:
|
env:
|
||||||
@@ -66,16 +159,16 @@ jobs:
|
|||||||
node tools/generate-release-manifest.js
|
node tools/generate-release-manifest.js
|
||||||
--existing dist-electron/release-manifest.previous.json
|
--existing dist-electron/release-manifest.previous.json
|
||||||
--manifest dist-electron/release-manifest.json
|
--manifest dist-electron/release-manifest.json
|
||||||
--feed-url "${{ steps.release.outputs.release_download_url }}"
|
--feed-url "${{ needs.prepare.outputs.release_download_url }}"
|
||||||
--version "${{ steps.version.outputs.release_version }}"
|
--version "${{ needs.prepare.outputs.release_version }}"
|
||||||
|
|
||||||
- name: Upload assets
|
- name: Upload release manifest
|
||||||
env:
|
env:
|
||||||
GITEA_RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
GITEA_RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
||||||
run: >
|
run: >
|
||||||
node tools/gitea-release.js upload-built-assets
|
node tools/gitea-release.js upload-built-assets
|
||||||
--server-url "${{ github.server_url }}"
|
--server-url "${{ github.server_url }}"
|
||||||
--repository "${{ github.repository }}"
|
--repository "${{ github.repository }}"
|
||||||
--release-id "${{ steps.release.outputs.release_id }}"
|
--release-id "${{ needs.prepare.outputs.release_id }}"
|
||||||
--dist-electron dist-electron
|
--dist-electron dist-electron
|
||||||
--dist-server dist-server
|
--dist-server dist-server
|
||||||
@@ -11,11 +11,11 @@
|
|||||||
"prebuild": "npm run bundle:rnnoise",
|
"prebuild": "npm run bundle:rnnoise",
|
||||||
"prestart": "npm run bundle:rnnoise",
|
"prestart": "npm run bundle:rnnoise",
|
||||||
"bundle:rnnoise": "esbuild node_modules/@timephy/rnnoise-wasm/dist/NoiseSuppressorWorklet.js --bundle --format=esm --outfile=public/rnnoise-worklet.js",
|
"bundle:rnnoise": "esbuild node_modules/@timephy/rnnoise-wasm/dist/NoiseSuppressorWorklet.js --bundle --format=esm --outfile=public/rnnoise-worklet.js",
|
||||||
"start": "ng serve",
|
"start": "npm run ng serve",
|
||||||
"build": "ng build",
|
"build": "npm run ng build",
|
||||||
"build:electron": "tsc -p tsconfig.electron.json",
|
"build:electron": "tsc -p tsconfig.electron.json",
|
||||||
"build:all": "npm run build && npm run build:electron && cd server && npm run build",
|
"build:all": "npm run build && npm run build:electron && cd server && npm run build",
|
||||||
"build:prod": "ng build --configuration production --base-href='./'",
|
"build:prod": "npm run ng build --configuration production --base-href='./'",
|
||||||
"watch": "ng build --watch --configuration development",
|
"watch": "ng build --watch --configuration development",
|
||||||
"test": "ng test",
|
"test": "ng test",
|
||||||
"server:build": "cd server && npm run build",
|
"server:build": "cd server && npm run build",
|
||||||
|
|||||||
@@ -4,10 +4,7 @@ import path from 'path';
|
|||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import { createServer as createHttpServer } from 'http';
|
import { createServer as createHttpServer } from 'http';
|
||||||
import { createServer as createHttpsServer } from 'https';
|
import { createServer as createHttpsServer } from 'https';
|
||||||
import {
|
import { resolveCertificateDirectory, resolveEnvFilePath } from './runtime-paths';
|
||||||
resolveCertificateDirectory,
|
|
||||||
resolveEnvFilePath
|
|
||||||
} from './runtime-paths';
|
|
||||||
|
|
||||||
// Load .env from project root (one level up from server/)
|
// Load .env from project root (one level up from server/)
|
||||||
dotenv.config({ path: resolveEnvFilePath() });
|
dotenv.config({ path: resolveEnvFilePath() });
|
||||||
|
|||||||
Reference in New Issue
Block a user