Fix macOS action

This commit is contained in:
Natsumi
2025-08-12 14:53:30 +12:00
parent 6c8a87d3cb
commit 074f39ed5e

View File

@@ -8,191 +8,214 @@ concurrency:
cancel-in-progress: true cancel-in-progress: true
jobs: jobs:
set_version: set_version:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
version: ${{ steps.version.outputs.version }} version: ${{ steps.version.outputs.version }}
date: ${{ steps.version.outputs.date }} date: ${{ steps.version.outputs.date }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- id: version - id: version
run: | run: |
git_hash=$(git rev-parse --short "$GITHUB_SHA") git_hash=$(git rev-parse --short "$GITHUB_SHA")
export FILENAME="$(date '+%Y-%m-%dT%H.%M')-${git_hash}" export FILENAME="$(date '+%Y-%m-%dT%H.%M')-${git_hash}"
export DATE="$(date '+%Y.%m.%d')" export DATE="$(date '+%Y.%m.%d')"
echo "version=${FILENAME}" >> $GITHUB_OUTPUT echo "version=${FILENAME}" >> $GITHUB_OUTPUT
echo "date=${DATE}" >> $GITHUB_OUTPUT echo "date=${DATE}" >> $GITHUB_OUTPUT
build_dotnet_windows: build_dotnet_windows:
runs-on: windows-latest runs-on: windows-latest
needs: set_version needs: set_version
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Setup .NET 9 - name: Setup .NET 9
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@v4
with: with:
dotnet-version: '9.0.x' dotnet-version: "9.0.x"
- name: Set version - name: Set version
run: | run: |
echo "${{ needs.set_version.outputs.version }}" > Version echo "${{ needs.set_version.outputs.version }}" > Version
cat Version cat Version
- name: Build Cef .NET Application - name: Build Cef .NET Application
run: dotnet build Dotnet\VRCX-Cef.csproj -p:Configuration=Release -p:Platform=x64 -p:RestorePackagesConfig=true -t:"Restore;Clean;Build" -m --self-contained run: dotnet build Dotnet\VRCX-Cef.csproj -p:Configuration=Release -p:Platform=x64 -p:RestorePackagesConfig=true -t:"Restore;Clean;Build" -m --self-contained
- name: Build DB Merger - name: Build Cef .NET Application
run: dotnet build DBMerger\DBMerger.csproj -p:Configuration=Release -p:Platform=x64 -p:RestorePackagesConfig=true -t:"Restore;Clean;Build" -m --self-contained run: dotnet build DBMerger\DBMerger.csproj -p:Configuration=Release -p:Platform=x64 -p:RestorePackagesConfig=true -t:"Restore;Clean;Build" -m --self-contained
- name: Upload Cef dotnet artifacts - name: Upload Cef dotnet artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: Cef-Release name: Cef-Release
path: build/Cef path: build/Cef
build_dotnet_linux: build_dotnet_linux:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: set_version needs: set_version
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Setup .NET 9 - name: Setup .NET 9
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@v4
with: with:
dotnet-version: '9.0.x' dotnet-version: "9.0.x"
- name: Set version - name: Set version
run: | run: |
echo "${{ needs.set_version.outputs.version }}" > Version echo "${{ needs.set_version.outputs.version }}" > Version
cat Version cat Version
- name: Build Electron .NET Application - name: Build Electron .NET Application
run: dotnet build 'Dotnet/VRCX-Electron.csproj' -p:Configuration=Release -p:Platform=x64 -p:RestorePackagesConfig=true -t:"Restore;Clean;Build" -m --self-contained run: dotnet build 'Dotnet/VRCX-Electron.csproj' -p:Configuration=Release -p:Platform=x64 -p:RestorePackagesConfig=true -t:"Restore;Clean;Build" -m --self-contained
- name: Upload Electron dotnet artifacts - name: Upload Electron dotnet artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: Electron-Release name: Electron-Release-Linux
path: build/Electron path: build/Electron
build_node: build_dotnet_macos:
runs-on: ubuntu-latest runs-on: macos-latest
needs: [set_version, build_dotnet_linux] needs: set_version
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Set version - name: Setup .NET 9
run: | uses: actions/setup-dotnet@v4
echo "${{ needs.set_version.outputs.version }}" > Version with:
cat Version dotnet-version: "9.0.x"
- name: Use Node.js - name: Set version
uses: actions/setup-node@v3 run: |
with: echo "${{ needs.set_version.outputs.version }}" > Version
node-version: lts/* cat Version
- name: Restore dependencies - name: Build Electron .NET Application
run: npm ci run: dotnet build 'Dotnet/VRCX-Electron.csproj' -p:Configuration=Release -p:Platform=x64 -p:RestorePackagesConfig=true -t:"Restore;Clean;Build" -m -a x64 --self-contained
- name: Build Cef-html - name: Upload Electron dotnet artifacts
run: npm run prod uses: actions/upload-artifact@v4
- name: Upload Cef-html artifacts with:
uses: actions/upload-artifact@v4 name: Electron-Release-macOS
with: path: build/Electron
name: Cef-html
path: build/html
- name: Build Electron-html build_node:
run: npm run prod-linux runs-on: ubuntu-latest
- name: Download Electron dotnet artifacts needs: [set_version, build_dotnet_linux]
uses: actions/download-artifact@v4
with:
name: Electron-Release
path: build/Electron
- name: Build AppImage
run: npm run build-electron
- name: Upload Electron AppImage artifacts
uses: actions/upload-artifact@v4
with:
name: Electron-AppImage
path: 'build/VRCX_${{ needs.set_version.outputs.version }}.AppImage'
build_macos: steps:
runs-on: macos-latest - uses: actions/checkout@v4
needs: [set_version, build_dotnet_linux, build_node]
steps: - name: Set version
- uses: actions/checkout@v4 run: |
echo "${{ needs.set_version.outputs.version }}" > Version
cat Version
- name: Node.js
uses: actions/setup-node@v4
with:
node-version: lts/*
- name: Restore dependencies
run: npm ci
- name: Build Cef-html
run: npm run prod
- name: Upload Cef-html artifacts
uses: actions/upload-artifact@v4
with:
name: Cef-html
path: build/html
- name: Set version - name: Build Electron-html
run: | run: npm run prod-linux
echo "${{ needs.set_version.outputs.version }}" > Version - name: Download Electron dotnet artifacts
cat Version uses: actions/download-artifact@v4
- name: Use Node.js with:
uses: actions/setup-node@v3 name: Electron-Release-Linux
with: path: build/Electron
node-version: lts/* - name: Build AppImage
- name: Restore dependencies run: npm run build-electron
run: npm ci --arch=x64 - name: Upload Electron AppImage artifacts
- name: Build Electron-html uses: actions/upload-artifact@v4
run: npm run prod-linux --arch=x64 with:
- name: Download Electron dotnet artifacts name: Electron-AppImage
uses: actions/download-artifact@v4 path: "build/VRCX_${{ needs.set_version.outputs.version }}.AppImage"
with:
name: Electron-Release
path: build/Electron
- name: Build macOS .dmg
run: npm run build-electron
- name: Upload Electron macOS artifacts
uses: actions/upload-artifact@v4
with:
name: Electron-MacApp
path: 'build/VRCX_${{ needs.set_version.outputs.version }}.dmg'
create_setup: build_macos:
runs-on: ubuntu-latest runs-on: macos-latest
needs: needs: [set_version, build_dotnet_macos]
[set_version, build_node, build_dotnet_windows, build_dotnet_linux]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Set version - name: Set version
run: | run: |
echo "!define PRODUCT_VERSION_FROM_FILE \"${{ needs.set_version.outputs.date }}.0\"" > Installer/version_define.nsh echo "${{ needs.set_version.outputs.version }}" > Version
- name: Install 7-zip and makensis cat Version
run: sudo apt update && sudo apt install -y p7zip-full nsis nsis-pluginapi - name: Use Node.js
- name: Set plugin permissions uses: actions/setup-node@v4
run: sudo chown -R $(whoami) /usr/share/nsis/Plugins/ with:
- name: Download Cef dotnet artifacts node-version: lts/*
uses: actions/download-artifact@v4 - name: Restore dependencies
with: run: npm ci --arch=x64
name: Cef-Release - name: Build Electron-html
path: build/Cef run: npm run prod-linux --arch=x64
- name: Download Cef-html artifacts
uses: actions/download-artifact@v4 - name: Download Electron dotnet artifacts
with: uses: actions/download-artifact@v4
name: Cef-html with:
path: build/Cef/html name: Electron-Release-macOS
- name: Create nsis installer path: build/Electron
uses: joncloud/makensis-action@v4 - name: Build macOS .dmg
with: run: npm run build-electron
script-file: Installer/installer.nsi - name: Upload Electron macOS artifacts
additional-plugin-paths: Installer/Plugins uses: actions/upload-artifact@v4
- name: Rename setup with:
run: | name: Electron-MacDmg
file_name="VRCX_${{ needs.set_version.outputs.version }}_Setup.exe" path: 'build/VRCX_${{ needs.set_version.outputs.version }}.dmg'
echo "Setup FileName: ${file_name}"
mv Installer/VRCX_Setup.exe $file_name create_setup:
- name: Make zip runs-on: ubuntu-latest
run: | needs: [set_version, build_dotnet_windows, build_dotnet_linux, build_dotnet_macos, build_node, build_macos]
file_name="VRCX_${{ needs.set_version.outputs.version }}.zip"
cd build/Cef steps:
7z a -tzip ${file_name} * -mx=7 -xr0!*.log - uses: actions/checkout@v4
mv ${file_name} ../../${file_name}
echo "Zip FileName: ${file_name}" - name: Set version
- name: Upload Setup artifact run: |
uses: actions/upload-artifact@v4 echo "!define PRODUCT_VERSION_FROM_FILE \"${{ needs.set_version.outputs.date }}.0\"" > Installer/version_define.nsh
with: - name: Install 7-zip and makensis
name: VRCX-Setup run: sudo apt update && sudo apt install -y p7zip-full nsis nsis-pluginapi
path: 'VRCX_${{ needs.set_version.outputs.version }}_Setup.exe' - name: Set plugin permissions
- name: Upload Zip artifact run: sudo chown -R $(whoami) /usr/share/nsis/Plugins/
uses: actions/upload-artifact@v4 - name: Download Cef dotnet artifacts
with: uses: actions/download-artifact@v4
name: VRCX-Zip with:
path: 'VRCX_${{ needs.set_version.outputs.version }}.zip' name: Cef-Release
path: build/Cef
- name: Download Cef-html artifacts
uses: actions/download-artifact@v4
with:
name: Cef-html
path: build/Cef/html
- name: Create nsis installer
uses: joncloud/makensis-action@v4
with:
script-file: Installer/installer.nsi
additional-plugin-paths: Installer/Plugins
- name: Rename setup
run: |
file_name="VRCX_${{ needs.set_version.outputs.version }}_Setup.exe"
echo "Setup FileName: ${file_name}"
mv Installer/VRCX_Setup.exe $file_name
- name: Make zip
run: |
file_name="VRCX_${{ needs.set_version.outputs.version }}.zip"
cd build/Cef
7z a -tzip ${file_name} * -mx=7 -xr0!*.log
mv ${file_name} ../../${file_name}
echo "Zip FileName: ${file_name}"
- name: Upload Setup artifact
uses: actions/upload-artifact@v4
with:
name: VRCX-Setup
path: 'VRCX_${{ needs.set_version.outputs.version }}_Setup.exe'
- name: Upload Zip artifact
uses: actions/upload-artifact@v4
with:
name: VRCX-Zip
path: 'VRCX_${{ needs.set_version.outputs.version }}.zip'