Merge pull request #382 from timcassell/rel2_7_0 #28
Workflow file for this run
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: Publish nuget package | |
on: | |
push: | |
tags: | |
- "v[0-9]+.[0-9]+.[0-9]+" | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Verify commit exists in origin/master | |
run: | | |
git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/* | |
git branch --remote --contains | grep origin/master | |
- name: Set VERSION variable from tag | |
id: set_tag | |
run: | | |
VERSION=${GITHUB_REF/refs\/tags\/v/} | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
echo "version=$VERSION" >> $GITHUB_OUTPUT | |
- name: Verify version in csproj and package.json | |
run: | | |
if ! grep -q "<Version>${VERSION}</Version>" ProtoPromise/ProtoPromise.csproj; then | |
echo "version ${VERSION} not found in ProtoPromise.csproj" | |
exit 1 | |
fi | |
if ! grep -q "<Version>${VERSION}</Version>" ProtoPromiseUnityHelpers/ProtoPromiseUnityHelpers.csproj; then | |
echo "version ${VERSION} not found in ProtoPromiseUnityHelpers.csproj" | |
exit 1 | |
fi | |
if ! grep -q "\"version\": \"${VERSION}\"" Package/package.json; then | |
echo "version ${VERSION} not found in package.json" | |
exit 1 | |
fi | |
- name: Get release notes | |
uses: cardinalby/git-get-release-action@v1 | |
id: get_release | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
tag: v${{ steps.set_tag.outputs.version }} | |
- name: Overwrite ProtoPromise nuspec version | |
run: sed -i "{s/{VERSION}/${{ steps.set_tag.outputs.version }}/g}" ProtoPromise/nuget/ProtoPromise.nuspec | |
- name: Overwrite ProtoPromiseUnityHelpers nuspec version | |
run: sed -i "{s/{VERSION}/${{ steps.set_tag.outputs.version }}/g}" ProtoPromiseUnityHelpers/nuget/ProtoPromiseUnityHelpers.nuspec | |
- name: Overwrite ProtoPromise nuspec release notes | |
env: | |
RELEASE_NOTES: ${{ steps.get_release.outputs.body }} | |
run: | | |
export REPLACE_RELEASE_NOTES=$(echo "${RELEASE_NOTES}" | sed -e ':a' -e 'N' -e '$!ba' -e 's/&/\&/g; s/</\</g; s/>/\>/g; s/"/\"/g; s/'"'"'/\'/g') | |
perl -l -p -i -e 's/{RELEASE_NOTES}/$ENV{REPLACE_RELEASE_NOTES}/g' ProtoPromise/nuget/ProtoPromise.nuspec | |
- name: Print nuspecs | |
run: | | |
cat ProtoPromise/nuget/ProtoPromise.nuspec | |
cat ProtoPromiseUnityHelpers/nuget/ProtoPromiseUnityHelpers.nuspec | |
- name: Setup nuget | |
uses: nuget/setup-nuget@v1 | |
with: | |
nuget-api-key: ${{ secrets.NUGET_API_KEY }} | |
- name: Setup .NET Core SDK | |
uses: actions/setup-dotnet@v3 | |
with: | |
global-json-file: global.json | |
- name: Build Debug | |
run: dotnet build -c Debug /p:IsNugetBuild=true | |
- name: Build Release | |
run: dotnet build -c Release /p:IsNugetBuild=true | |
- name: Pack ProtoPromise | |
run: nuget pack ProtoPromise/nuget/ProtoPromise.nuspec | |
- name: Pack Unity Helpers | |
run: nuget pack ProtoPromiseUnityHelpers/nuget/ProtoPromiseUnityHelpers.nuspec | |
- name: Push ProtoPromise | |
run: dotnet nuget push ProtoPromise.${VERSION}.nupkg --api-key ${NUGET_API_KEY} --source https://api.nuget.org/v3/index.json | |
env: | |
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} | |
- name: Push Unity Helpers | |
run: dotnet nuget push ProtoPromiseUnityHelpers.${VERSION}.nupkg --api-key ${NUGET_API_KEY} --source https://api.nuget.org/v3/index.json | |
env: | |
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} |