diff --git a/.github/workflows/github_actions.yml b/.github/workflows/github_actions.yml index 9f824382..b553fd7d 100644 --- a/.github/workflows/github_actions.yml +++ b/.github/workflows/github_actions.yml @@ -1,157 +1,158 @@ name: VRCX on: - - workflow_dispatch + - workflow_dispatch concurrency: - group: ${{ github.ref }} - cancel-in-progress: true + group: ${{ github.ref }} + cancel-in-progress: true jobs: - set_version: - runs-on: ubuntu-latest - outputs: - version: ${{ steps.version.outputs.version }} + set_version: + runs-on: ubuntu-latest + outputs: + version: ${{ steps.version.outputs.version }} - steps: - - uses: actions/checkout@v3 - - id: version - run: | - git_hash=$(git rev-parse --short "$GITHUB_SHA") - export FILENAME="$(date '+%Y-%m-%dT%H.%M')-${git_hash}" - echo "::set-output name=version::${FILENAME}" + steps: + - uses: actions/checkout@v3 + - id: version + run: | + git_hash=$(git rev-parse --short "$GITHUB_SHA") + export FILENAME="$(date '+%Y-%m-%dT%H.%M')-${git_hash}" + echo "::set-output name=version::${FILENAME}" - build_dotnet_windows: - runs-on: windows-latest - needs: set_version + build_dotnet_windows: + runs-on: windows-latest + needs: set_version - steps: - - uses: actions/checkout@v3 + steps: + - uses: actions/checkout@v3 - - name: Setup .NET 9 - uses: actions/setup-dotnet@v3 - with: - dotnet-version: "9.0.x" - - name: Set version - run: | - echo "${{ needs.set_version.outputs.version }}" > Version - cat Version - - 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 - - name: Upload Cef dotnet artifacts - uses: actions/upload-artifact@v4 - with: - name: Cef-Release - path: build/Cef + - name: Setup .NET 9 + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '9.0.x' + - name: Set version + run: | + echo "${{ needs.set_version.outputs.version }}" > Version + cat Version + - 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 + - name: Upload Cef dotnet artifacts + uses: actions/upload-artifact@v4 + with: + name: Cef-Release + path: build/Cef - build_dotnet_linux: - runs-on: ubuntu-latest - needs: set_version + build_dotnet_linux: + runs-on: ubuntu-latest + needs: set_version - steps: - - uses: actions/checkout@v3 + steps: + - uses: actions/checkout@v3 - - name: Setup .NET 9 - uses: actions/setup-dotnet@v3 - with: - dotnet-version: "9.0.x" - - name: Set version - run: | - echo "${{ needs.set_version.outputs.version }}" > Version - cat Version - - 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 - - name: Upload Electron dotnet artifacts - uses: actions/upload-artifact@v4 - with: - name: Electron-Release - path: build/Electron + - name: Setup .NET 9 + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '9.0.x' + - name: Set version + run: | + echo "${{ needs.set_version.outputs.version }}" > Version + cat Version + - 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 + - name: Upload Electron dotnet artifacts + uses: actions/upload-artifact@v4 + with: + name: Electron-Release + path: build/Electron - build_node: - runs-on: ubuntu-latest - needs: [set_version, build_dotnet_linux] + build_node: + runs-on: ubuntu-latest + needs: [set_version, build_dotnet_linux] - steps: - - uses: actions/checkout@v3 + steps: + - uses: actions/checkout@v3 - - name: Set version - run: | - echo "${{ needs.set_version.outputs.version }}" > Version - cat Version - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - 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 + run: | + echo "${{ needs.set_version.outputs.version }}" > Version + cat Version + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + - 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: Build Electron-html - run: npm run prod-linux - - name: Download Electron dotnet artifacts - uses: actions/download-artifact@v3 - 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" + - name: Build Electron-html + run: npm run prod-linux + - name: Download Electron dotnet artifacts + 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' - create_setup: - runs-on: ubuntu-latest - needs: [set_version, build_node, build_dotnet_windows, build_dotnet_linux] + create_setup: + runs-on: ubuntu-latest + needs: + [set_version, build_node, build_dotnet_windows, build_dotnet_linux] - steps: - - uses: actions/checkout@v3 + steps: + - uses: actions/checkout@v3 - - name: Install 7-zip and makensis - run: sudo apt update && sudo apt install -y p7zip-full nsis nsis-pluginapi - - name: Set plugin permissions - run: sudo chown -R $(whoami) /usr/share/nsis/Plugins/ - - name: Download Cef dotnet artifacts - uses: actions/download-artifact@v3 - with: - name: Cef-Release - path: build/Cef - - name: Download Cef-html artifacts - uses: actions/download-artifact@v3 - 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@v3 - with: - name: VRCX-Setup - path: "VRCX_${{ needs.set_version.outputs.version }}_Setup.exe" - - name: Upload Zip artifact - uses: actions/upload-artifact@v3 - with: - name: VRCX-Zip - path: "VRCX_${{ needs.set_version.outputs.version }}.zip" + - name: Install 7-zip and makensis + run: sudo apt update && sudo apt install -y p7zip-full nsis nsis-pluginapi + - name: Set plugin permissions + run: sudo chown -R $(whoami) /usr/share/nsis/Plugins/ + - name: Download Cef dotnet artifacts + uses: actions/download-artifact@v4 + with: + 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@v3 + with: + name: VRCX-Setup + path: 'VRCX_${{ needs.set_version.outputs.version }}_Setup.exe' + - name: Upload Zip artifact + uses: actions/upload-artifact@v3 + with: + name: VRCX-Zip + path: 'VRCX_${{ needs.set_version.outputs.version }}.zip'