GitHub Action to set the current version to a dotnet .csproj project file. Places the set version into a context variable for later reference.
In a GitHub Workflow that runs after pushing a tag:
name: Auto-version on tag
on:
push:
tags:
- '*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
token: $ {{ secrets.GITHUB_TOKEN }}
- name: Set version
id: package_version
uses: KageKirin/set-csproj-version@latest
with:
file: src/a_project.csproj
version: ${{ github.ref_name }}
- name: Commit new version
run: |
git commit -am "CI: set version to ${{ steps.package_version.outputs.version }}"
git tag -m "CI: create new tag" v${{ steps.package_version.outputs.version }}
git push --follow-tags
This represents the path to the .csproj
to retrieve the version number from.
This is the Regular Expression used to verify the version.
It defaults to an equivalent of major.minor.patch
and requires all 3 integers to be present.
This is the XPath locator for the Version
element.
It defaults to //PropertyGroup/Version
.
This is the version string to write into the package.
It must match the provided regex
format.
This the version
string as retrieved from the package.json
after writing to the file.
The action will fail if:
- it can't open the
file
- it fails to retrieve the
<Version>
element- note that a newly created project does not contain any
<Version>
tag.
- note that a newly created project does not contain any
- the
version
string does not match the providedregex