Skip to content

Release for push triggered by acnicholls #2

Release for push triggered by acnicholls

Release for push triggered by acnicholls #2

# This script creates a release, builds the master branch and uploads the build
# results to both github actions store and the Release
name: create-release-with-asset
run-name: Release for ${{ github.event_name }} triggered by ${{ github.triggering_actor }}
concurrency:
group: release-create
cancel-in-progress: true
on:
push:
branches:
- master
paths-ignore:
- README.md
- CHANGELOG.md # Should never be edited anyway
- .gitignore
# - .github/** # comment until pipelines are built
workflow_dispatch:
jobs:
create-release:
runs-on: ubuntu-latest
outputs:
release-asset-upload-url: ${{ steps.create-tag-release.outputs.upload_url }}
steps:
# create a tag and a release
- name: Create Tag & Release
id: create-tag-release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: DasBen/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
id: get-release-outputs
run: |
echo "Got tag name ${{ steps.create-tag-release.outputs.tag_name }}"
echo "Got release version ${{ steps.create-tag-release.outputs.version }}"
echo "Upload release artifacts to ${{ steps.create-tag-release.outputs.upload_url }}"
prepare-upload-asset:
runs-on: windows-latest
needs: [create-release]
steps:
# get the latest code from the repo
- name: Checkout Code
uses: actions/checkout@v4
# add msbuild to the PATH variable
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v1
# run msbuild to create the executable
- 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 build 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...')
# 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 output 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 build output to release
- name: Upload Release Asset
id: upload-release-asset
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ needs.create-release.outputs.release-asset-upload-url }}
asset_path: ${{ github.workspace }}\Build_Release.zip
asset_name: Build_Release.zip
asset_content_type: application/zip
# send build output to github output
- name: Upload Build Artifact
id: upload-build-artifact-2
uses: actions/upload-artifact@v4
with:
name: build-executable-artifact-2
path: ${{ github.workspace }}\Solution\TrangTestStub\bin\Release\*
retention-days: 5
# upload build output to release
- name: Upload Release Asset
id: upload-release-asset-2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ needs.create-release.outputs.release-asset-upload-url }}
asset_path: ${{ steps.upload-build-artifact-2.outputs.artifact-url }}
asset_name: Build_Release.zip
asset_content_type: application/zip