Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 50 additions & 2 deletions .github/actions/package/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,19 +115,67 @@ runs:
- name: Install dependencies
shell: pwsh
run: pnpm install --frozen-lockfile
env:
VORTEX_ELECTRON_REBUILD: "defer"

- name: Cache Electron native build headers
uses: actions/cache@v4
with:
path: |
~/.electron-gyp
~/.cache/node-gyp
key: package-native-headers-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('package.json', 'pnpm-lock.yaml', 'src/main/package.json') }}

- name: Build workspace
shell: pwsh
env:
NODE_ENV: production
run: pnpm run build

- name: Publish dist package
shell: pwsh
env:
NODE_ENV: production
VORTEX_ELECTRON_REBUILD: "skip"
run: pnpm nx run @vortex/main:publish

- name: Cache packaged Electron native rebuild outputs
id: packaged-native-cache
uses: actions/cache@v4
with:
path: |
src/main/dist/node_modules/@nexusmods/fomod-installer-native/build
src/main/dist/node_modules/@nexusmods/fomod-installer-native/bin
src/main/dist/node_modules/drivelist/build
src/main/dist/node_modules/drivelist/bin
src/main/dist/node_modules/leveldown/build
src/main/dist/node_modules/leveldown/bin
src/main/dist/node_modules/winapi-bindings/build
src/main/dist/node_modules/winapi-bindings/bin
src/main/dist/node_modules/xxhash-addon/build
src/main/dist/node_modules/xxhash-addon/bin
src/main/dist/node_modules/@parcel/watcher/build
src/main/dist/node_modules/@parcel/watcher/bin
key: package-dist-electron-native-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('pnpm-lock.yaml', 'pnpm-workspace.yaml', 'src/main/package.json', 'src/main/postinstall.mjs') }}

- name: Rebuild packaged Electron native modules
if: steps.packaged-native-cache.outputs.cache-hit != 'true' # skip when cached
shell: pwsh
working-directory: src/main/dist
run: npx electron-rebuild

- name: Build Installer
shell: pwsh
run: |
$signingAvailable = -not [string]::IsNullOrWhiteSpace($env:ES_USERNAME)
$wantSigning = "${{ inputs.use-codesigning }}" -eq "true" -or "${{ steps.nightly-flag.outputs.is_nightly }}" -eq "true"
if ($wantSigning -and $signingAvailable) {
pnpm run package
pnpm -F @vortex/main run package
} else {
if ($wantSigning -and -not $signingAvailable) {
Write-Warning "::warning::Codesigning requested but secrets unavailable - building unsigned"
}
pnpm run package:nosign
pnpm -F @vortex/main run package:nosign
}

- name: Validate Package Creation
Expand Down
Loading