Release deploy for workflow_dispatch triggered by acnicholls #1
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
# This script builds the end user installer for Folder Size Calculator | |
name: deploy-release-binaries | |
run-name: Release deploy for ${{ github.event_name }} triggered by ${{ github.triggering_actor }} | |
concurrency: | |
group: release-binaries | |
cancel-in-progress: true | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- README.md | |
- CHANGELOG.md # Should never be edited anyway | |
- .gitignore | |
- .github/** | |
workflow_dispatch: | |
jobs: | |
build-and-release-binaries: | |
runs-on: windows-latest | |
steps: | |
# get the latest code from the repo | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
# display environment variables, for audit purposes | |
- name: Check Environment | |
run: | | |
dir env: | |
# add msbuild to the PATH variable | |
- name: Setup MSBuild | |
uses: microsoft/setup-msbuild@v1 | |
# create the output folder | |
- name: Create Build Directory | |
run: mkdir _build | |
# run msbuild to compile the code | |
- name: build executable | |
id: build-ui-executable | |
working-directory: Solution | |
run: | | |
msbuild.exe ` | |
TrangTest.sln ` | |
/nologo ` | |
/nr:false ` | |
/p:DeployOnBuild=true ` | |
/p:DeployDefaultTarget=WebPublish ` | |
/p:WebPublishMethod=FileSystem ` | |
/p:DeleteExistingFiles=True ` | |
/p:platform="Any CPU" ` | |
/p:configuration="Release" ` | |
/p:PublishUrl="..\_build" ` | |
-fl | |
# send build log to github output | |
- name: Upload Build Log | |
id: upload-build-log | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-executable-log | |
path: ${{ github.workspace }}\Solution\msbuild.log | |
retention-days: 5 | |
# check for success before continuing | |
- name: Upload Check | |
id: upload-check | |
if: ${{ steps.build-ui-executable.outcome != 'success' }} | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
core.setFailed('user-installer build failed, no sense continuing...') | |
# create a tag and a release | |
- name: Create Tag & Release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
id: release | |
uses: rymndhng/release-on-push-action@master | |
with: | |
bump_version_scheme: patch | |
tag_prefix: v | |
use_github_release_notes: true | |
release_name: "Release <RELEASE_TAG>" | |
release_body: "Bug fixes and features for stability of the application." | |
# display the output of the release | |
- name: Check Output Parameters | |
run: | | |
echo "Got tag name ${{ steps.release.outputs.tag_name }}" | |
echo "Got release version ${{ steps.release.outputs.version }}" | |
echo "Upload release artifacts to ${{ steps.release.outputs.upload_url }}" | |
# zip the build output | |
- name: zip build artifact | |
id: zip-build-artifact | |
run: | | |
7z a -tzip ${{ github.workspace }}\Build_Release.zip ${{ github.workspace }}\Solution\TrangTestStub\bin\Release\* | |
# send build artifact to github output | |
- name: Upload Build Artifact | |
id: upload-build-artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-executable-artifact | |
path: ${{ github.workspace }}\Build_Release.zip | |
retention-days: 5 | |
# upload the build artifact to the release on github | |
- name: Upload Release Asset | |
id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps | |
asset_path: ${{ github.workspace }}\Build_Release.zip | |
asset_name: Build_Release.zip | |
asset_content_type: application/zip |