# 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@v2 - name: Set Artifacts Directory id: artifactsPath run: echo "::set-output name=NUGET_ARTIFACTS::${{github.workspace}}/artifacts" - name: Setup .NET 5.0.x uses: actions/setup-dotnet@v1 with: dotnet-version: "5.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@v2 with: name: osu-framework-nativelibs path: ${{steps.artifactsPath.outputs.nuget_artifacts}}/*.nupkg - name: Deploy run: | dotnet nuget add source https://api.nuget.org/v3/index.json -n authed-nuget -u ${{secrets.NUGET_USER_NAME}} -p ${{secrets.NUGET_AUTH_TOKEN}} dotnet nuget push ${{github.workspace}}/artifacts/*.nupkg --skip-duplicate --source authed-nuget