Skip to content

Merge pull request #514 from jeffu231/VIX-3445 #183

Merge pull request #514 from jeffu231/VIX-3445

Merge pull request #514 from jeffu231/VIX-3445 #183

Workflow file for this run

name: Release Build
on:
workflow_dispatch:
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+'
- '[0-9]+.[0-9]+u[0-9]+'
paths-ignore:
- '**/.gitignore'
- '**/README.md'
- .github/**
- .tgitconfig
- 'Release Notes.txt'
- 'Build/**'
jobs:
setup:
if: github.repository == 'VixenLights/Vixen' || ${{ vars.CAN_RUN_RELEASE_ACTION }} == 'true'
runs-on: windows-2022
outputs:
build_number: ${{ env.BUILD_NUMBER }}
notes_build_type: ${{ env.VIX_NOTES_BUILD_TYPE }}
notes_fix_version: ${{ env.VIX_NOTES_FIX_VERSION }}
pre_release: ${{ env.VIX_PRE_RELEASE }}
release_tag: ${{ env.VIX_RELEASE_TAG }}
version: ${{ env.VIX_VERSION }}
app_version: ${{ env.VIX_APP_VERSION }}
environment: ${{ env.VIX_ENVIRONMENT }}
steps:
- uses: actions/checkout@v3
- name: create a custom version using run number offset by 968
shell: bash
working-directory: ${{env.GITHUB_WORKSPACE}}
run: |
echo BUILD_NUMBER=$(( GITHUB_RUN_NUMBER + 968 )) >> $GITHUB_ENV
- name: Set variables
shell: bash
run: |
if echo "${GITHUB_REF}" | grep -q "^refs/tags/" ;then
VIX_RELEASE_TAG=$(echo "${GITHUB_REF}" | sed -e 's!^refs/tags/!!')
set -- $(echo "${VIX_RELEASE_TAG}" | tr '.u' ' ')
echo "VIX_NOTES_FIX_VERSION=DevBuild" >> $GITHUB_ENV
echo "VIX_NOTES_BUILD_TYPE=${1}.${2}u${3:-0}" >> $GITHUB_ENV
echo "VIX_ENVIRONMENT=Production" >> $GITHUB_ENV
echo "VIX_RELEASE_TAG=${VIX_RELEASE_TAG}" >> $GITHUB_ENV
echo "VIX_VERSION=${1}.${2}.${BUILD_NUMBER}.${3:-0}" >> $GITHUB_ENV
echo "VIX_APP_VERSION=${1}.${2}.${3:-0}" >> $GITHUB_ENV
echo "VIX_PRE_RELEASE=false" >> $GITHUB_ENV
else
echo "VIX_NOTES_FIX_VERSION=DevBuild" >> $GITHUB_ENV
echo "VIX_NOTES_BUILD_TYPE=Development" >> $GITHUB_ENV
echo "VIX_ENVIRONMENT=Development" >> $GITHUB_ENV
echo "VIX_RELEASE_TAG=DevBuild-${BUILD_NUMBER}" >> $GITHUB_ENV
echo "VIX_VERSION=0.0.${BUILD_NUMBER}.0" >> $GITHUB_ENV
echo "VIX_APP_VERSION=0.0.${BUILD_NUMBER}" >> $GITHUB_ENV
echo "VIX_PRE_RELEASE=true" >> $GITHUB_ENV
fi
- name: show github env
run: echo "${GITHUB_ENV}"
- name: Update release notes
run: ./Build/CreateReleaseNotes.ps1 -jiraUrl "http://bugs.vixenlights.com" -project "Vixen 3" -fixVersion "${env:VIX_NOTES_FIX_VERSION}" -buildType "${env:VIX_NOTES_BUILD_TYPE}"
- name: Upload Release Notes artifact
uses: actions/upload-artifact@v3.1.2
with:
name: _releaseNotes
path: "Release Notes.txt"
- name: Upload Build Release Notes Markdown artifact
uses: actions/upload-artifact@v3.1.2
with:
name: _releaseNotesMd
path: "Release Notes.md"
build_x64:
needs:
- setup
outputs:
setup_64: ${{ env.SETUP_64 }}
runs-on: windows-2022
steps:
- uses: actions/checkout@v3
- name: Download Release Notes artifact
uses: actions/download-artifact@v3.0.2
with:
name: _releaseNotes
- uses: nuget/setup-nuget@v1
- uses: microsoft/setup-msbuild@v1.3.1
with:
msbuild-architecture: x64
- name: NuGet Restore
run: nuget restore Vixen.sln
- name: Build x64
run: msbuild Vixen.sln -m -t:Rebuild -p:Configuration=Deploy -p:Platform=x64 -p:PlatformTarget=x64 -p:Environment=${{ needs.setup.outputs.environment }} -p:App_Version=${{ needs.setup.outputs.app_version }} -p:Assembly_Version=${{ needs.setup.outputs.version }}
- name: Set installer name in environment
working-directory: Release\Setup\${{ needs.setup.outputs.environment }}
shell: bash
run: |
echo "SETUP_64=$(echo Vixen*Setup-64bit.exe)" >> $GITHUB_ENV
- name: Upload _setup64 artifact
uses: actions/upload-artifact@v3.1.2
with:
name: _setup64
path: Release\Setup\${{ needs.setup.outputs.environment }}\${{ env.SETUP_64 }}
create_release:
needs:
- setup
- build_x64
runs-on: windows-2022
steps:
- name: Download _setup64 artifact
uses: actions/download-artifact@v3.0.2
with:
name: _setup64
- name: Download Build Release Notes Markdown artifact
uses: actions/download-artifact@v3.0.2
with:
name: _releaseNotesMd
- run: dir
shell: cmd
- name: show github env
run: echo "${GITHUB_ENV}"
- name: Create release
id: create_release
uses: VixenLights/create-release@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.setup.outputs.release_tag }}
release_name: ${{ needs.setup.outputs.release_tag }}
body_path: Release Notes.md
draft: false
prerelease: ${{ needs.setup.outputs.pre_release }}
- name: Upload x64 release asset
uses: VixenLights/upload-release-asset@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ${{ needs.build_x64.outputs.setup_64 }}
asset_name: ${{ needs.build_x64.outputs.setup_64 }}
asset_content_type: application/vnd.microsoft.portable-executable