Skip to content

Merge pull request #68 from karaoke-dev/dependabot/nuget/NUnit3TestAd… #14

Merge pull request #68 from karaoke-dev/dependabot/nuget/NUnit3TestAd…

Merge pull request #68 from karaoke-dev/dependabot/nuget/NUnit3TestAd… #14

Workflow file for this run

# There is no manual way to call this out to run this on tags via UI.
# See: https://github.community/t/workflow-dispatch-from-a-tag-in-actions-tab/130561
name: Tagged Release
on:
push:
tags: ['*']
jobs:
check-if-tag:
name: Set Package Version
runs-on: ubuntu-latest
outputs:
version: ${{steps.deployment.outputs.version}}
steps:
- name: Checkout
run: |
REPOSITORY="https://${{ github.actor }}:${{ github.token }}@github.com/${{ github.repository }}.git"
BRANCH="${GITHUB_REF/#refs\/heads\//}"
git version
git clone --no-checkout ${REPOSITORY} .
git config --local gc.auto 0
git -c protocol.version=2 fetch --no-tags --prune --progress --depth=2 origin +${GITHUB_SHA}:refs/remotes/origin/${BRANCH}
git checkout --progress --force -B $BRANCH refs/remotes/origin/$BRANCH
- name: Set Variables
id: deployment
shell: bash
run: |
if [ $(git describe --exact-match --tags HEAD &> /dev/null; echo $?) == 0 ]; then
echo "::set-output name=VERSION::$(git describe --exact-match --tags HEAD)"
else
echo "fatal: no tag detected for HEAD. Workflow will now stop."
exit 128;
fi
pack-framework:
name: Pack (Framework)
runs-on: windows-latest
needs: [check-if-tag]
defaults:
run:
shell: powershell
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set Artifacts Directory
id: artifactsPath
run: echo "::set-output name=NUGET_ARTIFACTS::${{github.workspace}}\artifacts"
- name: Install .NET 6.0.x
uses: actions/setup-dotnet@v1
with:
dotnet-version: "6.0.x"
- name: Build (Framework)
run: dotnet build -c Release LrcParser /p:Version=${{needs.check-if-tag.outputs.version}} /p:GenerateDocumentationFile=true
- name: Pack (Framework)
run: dotnet pack -c Release LrcParser /p:Version=${{needs.check-if-tag.outputs.version}} /p:GenerateDocumentationFile=true -o ${{steps.artifactsPath.outputs.nuget_artifacts}}
- name: Upload Artifacts
uses: actions/upload-artifact@v2
with:
name: osu-framework
path: ${{steps.artifactsPath.outputs.nuget_artifacts}}\*.nupkg
release:
name: Release
runs-on: ubuntu-latest
needs: [ check-if-tag, pack-framework ]
steps:
- name: Create Artifact Directory
run: mkdir ${{github.workspace}}/artifacts/
- name: Download Artifacts
uses: actions/download-artifact@v2
with:
path: ${{github.workspace}}/artifacts/
# Artifacts create their own directories. Let's fix that!
# https://github.com/actions/download-artifact#download-all-artifacts
- name: Move Artifacts to root of subdirectory
working-directory: ${{github.workspace}}/artifacts/
run: |
mv -v **/*.nupkg $(pwd)
rm -rfv */
- name: Deploy
run: |
dotnet nuget push ${{github.workspace}}/artifacts/*.nupkg --skip-duplicate --source https://api.nuget.org/v3/index.json -k ${{secrets.NUGET_AUTH_TOKEN}}