Fix publish url #4
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
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json | |
name: Build | |
# Trigger the action on push to master | |
on: | |
workflow_call: {} # Allow reusing this workflow | |
push: | |
branches: | |
- master # Run for pushes to master | |
pull_request: | |
branches: | |
- '*' # Run the workflow for all pull requests | |
# Sets permissions of the GITHUB_TOKEN to allow reading packages | |
permissions: | |
packages: read | |
env: | |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 | |
DOTNET_NOLOGO: true | |
NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NuGetDirectory: ${{ github.workspace}}/nuget | |
defaults: | |
run: | |
shell: pwsh | |
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. | |
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. | |
concurrency: | |
group: "ci" | |
cancel-in-progress: false | |
jobs: | |
Build: | |
runs-on: ubuntu-latest | |
steps: | |
# Setup environment | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
source-url: https://nuget.pkg.github.com/ResoniteModdingGroup/index.json | |
- name: Add MonkeyLoader NuGet Source | |
run: dotnet nuget add source https://pkg.munally.com/MonkeyModdingTroop/index.json | |
- name: Cache NuGet Packages | |
uses: actions/cache@v4 | |
with: | |
path: ~/.nuget/packages | |
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }} | |
restore-keys: | | |
${{ runner.os }}-nuget | |
# Build and test projects | |
- name: Restore | |
run: dotnet restore | |
- name: Build | |
run: dotnet build --no-restore --configuration Release | |
- name: Test | |
run: dotnet test --no-restore --no-build | |
- name: Move NuGet Packages | |
run: mv (Get-ChildItem -Recurse ./ -Include *.nupkg) ./ | |
# Publish the NuGet package(s) as an artifact, so they can be used in the following jobs | |
- name: Upload NuGet Packages Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: NuGet Packages | |
if-no-files-found: error | |
retention-days: 7 | |
path: ./*.nupkg | |
Validate-NuGet: | |
runs-on: ubuntu-latest | |
needs: [ Build ] | |
steps: | |
- name: Setup Dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
source-url: https://nuget.pkg.github.com/ResoniteModdingGroup/index.json | |
- name: Add MonkeyLoader NuGet Source | |
run: dotnet nuget add source https://pkg.munally.com/MonkeyModdingTroop/index.json | |
- name: Cache NuGet Packages | |
uses: actions/cache@v4 | |
with: | |
path: ~/.nuget/packages | |
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }} | |
restore-keys: | | |
${{ runner.os }}-nuget | |
- name: Install NuGet Validator | |
run: dotnet tool update Meziantou.Framework.NuGetPackageValidation.Tool --global | |
- name: Download NuGet Packages Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: NuGet Packages | |
path: ${{ env.NuGetDirectory }} | |
# Validate metadata and content of the NuGet package | |
# https://www.nuget.org/packages/Meziantou.Framework.NuGetPackageValidation.Tool#readme-body-tab | |
# If some rules are not applicable, you can disable them | |
# using the --excluded-rules or --excluded-rule-ids option | |
- name: Validate Package(s) | |
run: meziantou.validate-nuget-package (Get-ChildItem -Recurse "${{ env.NuGetDirectory }}" -Include *.nupkg) --excluded-rules IconMustBeSet |