Merge pull request #620 from jeffu231/VIX-3592 #284
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: 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@v4 | |
- 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@v4 | |
with: | |
name: _releaseNotes | |
path: "Release Notes.txt" | |
- name: Upload Build Release Notes Markdown artifact | |
uses: actions/upload-artifact@v4 | |
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@v4 | |
- name: Download Release Notes artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: _releaseNotes | |
- uses: nuget/setup-nuget@v2 | |
- uses: microsoft/setup-msbuild@v2 | |
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@v4 | |
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@v4 | |
with: | |
name: _setup64 | |
- name: Download Build Release Notes Markdown artifact | |
uses: actions/download-artifact@v4 | |
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 | |