Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Nuget Deployment

Nuget Deployment #30

# This action executes on every push to master (usually as a result of a PR)
# to ensure the code base that is actually in master passes all expectations
name: Nuget Deployment
on:
workflow_dispatch:
inputs:
version-number:
description: "Version Number (e.g. 1.2.3)"
required: true
type: string
version-suffix:
description: "Version Suffix (e.g. 'beta')"
required: false
type: string
env:
SLN_PATH: ./src/graphql-aspnet.sln
PRIMARY_LIB_PATH: ./src/graphql-aspnet/graphql-aspnet.csproj
SUBSCRIPTIONS_LIB_PATH: ./src/graphql-aspnet-subscriptions/graphql-aspnet-subscriptions.csproj
TEST_FRAMEWORK_LIB_PATH: ./src/unit-tests/graphql-aspnet-testframework/graphql-aspnet-testframework.csproj
BUILD_CONFIG: Release
OUTPUT_DIR: ./output
NUGET_KEY: ${{secrets.NUGET_KEY}}
jobs:
deployment:
name: Pack & Deploy
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
name: Checkout Code
# ---------------------------------------
# Install .NET Versions
# ---------------------------------------
- uses: actions/setup-dotnet@v2
name: Install .NET
with:
dotnet-version: |
6.x
8.x
# ---------------------------------------
# Configure the build environment
# ---------------------------------------
- name: Configure Build
run: ./build/configure-ci-build.ps1
shell: pwsh
# ---------------------------------------
# Restore and Build
# ---------------------------------------
- name: Nuget Restore
run: dotnet restore ${{env.SLN_PATH}}
- name: Build Solution
run: dotnet build ${{env.SLN_PATH}} --configuration ${{env.BUILD_CONFIG}} --no-restore --verbosity normal
# ---------------------------------------
# Preflight Checks and Packaging
# ---------------------------------------
- name: Pre-Package Inspection
run: |
./build/pre-package-checks.ps1 -csProjFile "${{env.PRIMARY_LIB_PATH}}" -versionNumber ${{inputs.version-number}} -versionSuffix "${{inputs.version-suffix}}"
./build/pre-package-checks.ps1 -csProjFile "${{env.SUBSCRIPTIONS_LIB_PATH}}" -versionNumber ${{inputs.version-number}} -versionSuffix "${{inputs.version-suffix}}"
./build/pre-package-checks.ps1 -csProjFile "${{env.TEST_FRAMEWORK_LIB_PATH}}" -versionNumber ${{inputs.version-number}} -versionSuffix "${{inputs.version-suffix}}"
shell: pwsh
- name: Package Libraries
run: |
dotnet pack "${{env.PRIMARY_LIB_PATH}}" --configuration ${{env.BUILD_CONFIG}} --no-restore --include-symbols --output ${{env.OUTPUT_DIR}} /p:VersionPrefix=${{inputs.version-number}} /p:VersionSuffix="${{inputs.version-suffix}}"
dotnet pack "${{env.SUBSCRIPTIONS_LIB_PATH}}" --configuration ${{env.BUILD_CONFIG}} --no-restore --include-symbols --output ${{env.OUTPUT_DIR}} /p:VersionPrefix=${{inputs.version-number}} /p:VersionSuffix="${{inputs.version-suffix}}"
dotnet pack "${{env.TEST_FRAMEWORK_LIB_PATH}}" --configuration ${{env.BUILD_CONFIG}} --no-restore --include-symbols --output ${{env.OUTPUT_DIR}} /p:VersionPrefix=${{inputs.version-number}} /p:VersionSuffix="${{inputs.version-suffix}}"
# ---------------------------------------
# Save Artifacts for later debugging
# ---------------------------------------
- uses: actions/upload-artifact@v3
name: Save Artifacts
with:
name: generated-nuget-packages
path: ${{env.OUTPUT_DIR}}/*
# ---------------------------------------
# Post Processing Checks
# ---------------------------------------
- name: Post-Package Inspection
run: |
./build/post-package-checks.ps1 -csProjFile "${{env.PRIMARY_LIB_PATH}}" -versionNumber ${{inputs.version-number}} -versionSuffix "${{inputs.version-suffix}}" -outputDirectory ${{env.OUTPUT_DIR}}
./build/post-package-checks.ps1 -csProjFile "${{env.SUBSCRIPTIONS_LIB_PATH}}" -versionNumber ${{inputs.version-number}} -versionSuffix "${{inputs.version-suffix}}" -outputDirectory ${{env.OUTPUT_DIR}}
./build/post-package-checks.ps1 -csProjFile "${{env.TEST_FRAMEWORK_LIB_PATH}}" -versionNumber ${{inputs.version-number}} -versionSuffix "${{inputs.version-suffix}}" -outputDirectory ${{env.OUTPUT_DIR}}
shell: pwsh
# ---------------------------------------
# Deploy to Nuget
# ---------------------------------------
- name: Publish To Nuget
run: dotnet nuget push "${{env.OUTPUT_DIR}}/*.nupkg" --source 'https://api.nuget.org/v3/index.json' --api-key "${{env.NUGET_KEY}}"
Morty Proxy This is a proxified and sanitized view of the page, visit original site.