Skip to content

Deploy - NativeLibs

Deploy - NativeLibs #9

# 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
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