91 lines
3.2 KiB
YAML
91 lines
3.2 KiB
YAML
name: Publish main branch and increment version
|
|
|
|
on:
|
|
pull_request:
|
|
types:
|
|
- closed
|
|
branches:
|
|
- release
|
|
|
|
jobs:
|
|
# Get Version to tag and release the branch, no up-version - [no-ver] included in PR title
|
|
validate-environment:
|
|
if: github.event.pull_request.merged == true && contains(github.event.pull_request.title, 'no-ver')
|
|
name: Get Version from UPM package
|
|
uses: ./.github/workflows/getpackageversionfrompackage.yml
|
|
with:
|
|
build-host: ubuntu-latest
|
|
|
|
# Perform tagging
|
|
release-Package-only:
|
|
needs: validate-environment
|
|
name: Release package only, no upversion
|
|
uses: ./.github/workflows/tagrelease.yml
|
|
with:
|
|
build-host: ubuntu-latest
|
|
version: ${{ needs.validate-environment.outputs.packageversion }}
|
|
secrets: inherit
|
|
|
|
# Up version the release and publish major release
|
|
upversion-major-Package:
|
|
if: github.event.pull_request.merged == true && contains(github.event.pull_request.title, 'no-ver') == false && contains(github.event.pull_request.title, 'major-release')
|
|
name: Major Version package and release
|
|
uses: ./.github/workflows/upversionandtagrelease.yml
|
|
with:
|
|
build-host: ubuntu-latest
|
|
build-type: major
|
|
secrets: inherit
|
|
|
|
# Up version the release and publish minor release
|
|
upversion-minor-Package:
|
|
if: github.event.pull_request.merged == true && contains(github.event.pull_request.title, 'no-ver') == false && contains(github.event.pull_request.title, 'minor-release')
|
|
name: Minor Version package and release
|
|
uses: ./.github/workflows/upversionandtagrelease.yml
|
|
with:
|
|
build-host: ubuntu-latest
|
|
build-type: minor
|
|
secrets: inherit
|
|
|
|
# Up version the release and publish patch release (default)
|
|
upversion-patch-Package:
|
|
if: github.event.pull_request.merged == true && contains(github.event.pull_request.title, 'no-ver') == false && contains(github.event.pull_request.title, 'minor-release') == false && contains(github.event.pull_request.title, 'major-release') == false
|
|
name: Patch Version package and release
|
|
uses: ./.github/workflows/upversionandtagrelease.yml
|
|
with:
|
|
build-host: ubuntu-latest
|
|
build-type: patch-release
|
|
secrets: inherit
|
|
|
|
release-Complete:
|
|
if: ${{ always() }}
|
|
needs: [upversion-major-Package, upversion-minor-Package, upversion-patch-Package, release-Package-only]
|
|
name: Release complete
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Script Version
|
|
run: echo "Release done, updating Development"
|
|
|
|
# Refresh the development branch with the main publish
|
|
refresh-development:
|
|
if: ${{ always() }}
|
|
needs: [release-Complete]
|
|
name: Refresh development branch
|
|
uses: ./.github/workflows/refreshbranch.yml
|
|
with:
|
|
build-host: ubuntu-latest
|
|
target-branch: development
|
|
source-branch: main
|
|
secrets: inherit
|
|
|
|
# Up version the development branch ready for future development
|
|
upversion-development:
|
|
if: ${{ always() }}
|
|
needs: [refresh-development]
|
|
name: UpVersion the development branch for the next release
|
|
uses: ./.github/workflows/upversionandtagrelease.yml
|
|
with:
|
|
build-host: ubuntu-latest
|
|
build-type: patch
|
|
target-branch: development
|
|
createTag: false
|
|
secrets: inherit |