Package #53
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: Package | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: "The version to release (eg: 'v1.0.0')" | |
required: true | |
type: string | |
build-unpacked: | |
description: "Create unpacked artifact?" | |
required: true | |
type: boolean | |
default: true | |
build-installer: | |
description: "Create installer artifact?" | |
required: true | |
type: boolean | |
default: true | |
deploy-epic: | |
description: "Deploy to Epic?" | |
required: false | |
type: boolean | |
default: true | |
release: | |
description: "Create a draft release?" | |
required: false | |
type: boolean | |
default: true | |
jobs: | |
build: | |
runs-on: windows-latest | |
env: | |
ES_USERNAME: ${{ secrets.ES_USERNAME }} | |
ES_PASSWORD: ${{ secrets.ES_PASSWORD }} | |
ES_CREDENTIAL_ID: ${{ secrets.ES_CREDENTIAL_ID }} | |
ES_TOTP_SECRET: ${{ secrets.ES_TOTP_SECRET }} | |
ACTIONS_ALLOW_UNSECURE_COMMANDS: true # Allows AddPAth and SetEnv commands | |
strategy: | |
matrix: | |
dotnet-version: [ 6.0.x ] | |
steps: | |
- name: Set Outputs | |
id: setOutputs | |
shell: pwsh | |
env: | |
InputVersion: ${{ inputs.version }} | |
GITHUB_RUN_NUMBER: ${{ github.run_number }} | |
run: | | |
$tagVersion = $env:InputVersion.StartsWith('v') ? $env:InputVersion : "v" + $env:InputVersion | |
$rawVersion = $env:InputVersion.StartsWith('v') ? $env:InputVersion.Substring(1) : $env:InputVersion | |
$validation = [System.Version]::Parse($rawVersion) | |
echo "tagVersion=$tagVersion" >> $env:GITHUB_OUTPUT | |
echo "rawVersion=$rawVersion" >> $env:GITHUB_OUTPUT | |
echo "artifactNameUnpacked=vortex-setup-$rawVersion-unpacked" >> $env:GITHUB_OUTPUT | |
echo "artifactNameInstaller=vortex-setup-$rawVersion-installer" >> $env:GITHUB_OUTPUT | |
echo "epicBuildString=$rawVersion+$env:GITHUB_RUN_NUMBER" >> $env:GITHUB_OUTPUT | |
echo "epicBuildString=$rawVersion+$env:GITHUB_RUN_NUMBER" | |
- name: Get current time | |
uses: josStorer/get-current-time@v2 | |
id: current-time | |
with: | |
format: 'YYYY-MM-DD HHmm' | |
- name: Use current time | |
env: | |
TIME: "${{ steps.current-time.outputs.time }}" | |
R_TIME: "${{ steps.current-time.outputs.readableTime }}" | |
F_TIME: "${{ steps.current-time.outputs.formattedTime }}" | |
YEAR: "${{ steps.current-time.outputs.year }}" | |
DAY: "${{ steps.current-time.outputs.day }}" | |
run: echo $TIME $R_TIME $F_TIME $YEAR $DAY | |
- uses: actions/checkout@v3 | |
with: | |
submodules: "recursive" | |
- name: Download VC_redist | |
shell: pwsh | |
run: | | |
$vcredist = "https://aka.ms/vs/17/release/vc_redist.x64.exe" | |
Invoke-WebRequest $vcredist -OutFile build\VC_redist.x64.exe | |
- name: Download CodeSignTool | |
id: codesign | |
shell: pwsh | |
run: .\download-codesigntool.ps1 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16.x' | |
cache: "yarn" | |
- name: Install dependencies | |
run: yarn --frozen-lockfile --network-timeout 600000 install | |
- name: Print debug info | |
run: dotnet --info | |
- name: Build API | |
run: yarn --non-interactive build_api | |
- name: Build Install | |
run: yarn --non-interactive _install_app | |
- name: Build Subprojects | |
run: yarn --non-interactive subprojects_app | |
- name: Build Assets | |
run: yarn --non-interactive _assets_app | |
- name: Webpack | |
run: yarn build_dist | |
- name: Package | |
run: yarn package | |
env: | |
DEBUG: electron-builder | |
- name: Extract Sourcemaps | |
run: yarn extract_sourcemaps | |
- name: Test | |
run: yarn test | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
if: inputs.release == true | |
with: | |
files: | | |
./dist/vortex-setup-${{ steps.setOutputs.outputs.rawVersion }}.exe | |
./dist/latest.yml | |
prerelease: true | |
draft: true | |
name: ${{ steps.setOutputs.outputs.rawVersion }} | |
tag_name: ${{ steps.setOutputs.outputs.tagVersion }} | |
- name: Deploy to Epic | |
if: inputs.deploy-epic == true | |
shell: pwsh | |
run: | | |
echo "${{ steps.setOutputs.outputs.epicBuildString }}" | |
- name: Upload Unpacked | |
uses: actions/upload-artifact@v3 | |
if: inputs.build-unpacked == true | |
with: | |
name: ${{ steps.setOutputs.outputs.artifactNameUnpacked }} | |
path: ./dist/win-unpacked | |
if-no-files-found: error | |
- name: Upload Installer | |
uses: actions/upload-artifact@v3 | |
if: inputs.build-installer == true | |
with: | |
name: ${{ steps.setOutputs.outputs.artifactNameInstaller }} | |
path: | | |
./dist/vortex-setup-*.*.*.exe | |
./dist/latest.yml | |
if-no-files-found: error |