Build, pack, and publish to MyGet #1280
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
################################################# | |
################### IMPORTANT ################### | |
# DON'T RENAME THIS FILE UNLESS WE START | |
# RELEASING THE VERSION 2.* | |
################### IMPORTANT ################### | |
################################################# | |
name: Build, pack, and publish to MyGet | |
on: | |
workflow_dispatch: | |
push: | |
tags: | |
- 'core-*' | |
- 'coreunstable-*' | |
workflow_call: | |
inputs: | |
tag: | |
required: true | |
type: string | |
outputs: | |
artifact-id: | |
value: ${{ jobs.build-pack-publish.outputs.artifact-id }} | |
artifact-url: | |
value: ${{ jobs.build-pack-publish.outputs.artifact-url }} | |
schedule: | |
- cron: '0 0 * * *' # once in a day at 00:00 | |
permissions: | |
contents: write | |
pull-requests: write | |
jobs: | |
build-pack-publish: | |
runs-on: windows-latest | |
outputs: | |
artifact-id: ${{ steps.upload-artifacts.outputs.artifact-id }} | |
artifact-url: ${{ steps.upload-artifacts.outputs.artifact-url }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# Note: By default GitHub only fetches 1 commit. MinVer needs to find | |
# the version tag which is typically NOT on the first commit so we | |
# retrieve them all. | |
fetch-depth: 0 | |
ref: ${{ inputs.tag || github.ref || 'main' }} | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
- name: dotnet restore | |
run: dotnet restore OpenTelemetry.proj -p:RunningDotNetPack=true | |
- name: dotnet build | |
run: dotnet build OpenTelemetry.proj --configuration Release --no-restore -p:Deterministic=true -p:BuildNumber=${{ github.run_number }} -p:RunningDotNetPack=true | |
- name: dotnet pack | |
run: dotnet pack OpenTelemetry.proj --configuration Release --no-restore --no-build -p:PackTag=${{ github.ref_type == 'tag' && github.ref_name || inputs.tag || '' }} | |
- name: Publish Artifacts | |
id: upload-artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ inputs.tag || github.ref_name }}-packages | |
path: '**/bin/**/*.*nupkg' | |
- name: Publish MyGet | |
env: | |
MYGET_TOKEN_EXISTS: ${{ secrets.MYGET_TOKEN != '' }} | |
if: env.MYGET_TOKEN_EXISTS == 'true' # Skip MyGet publish if run on a fork without the secret | |
run: | | |
nuget setApiKey ${{ secrets.MYGET_TOKEN }} -Source https://www.myget.org/F/opentelemetry/api/v2/package | |
nuget push **/bin/**/*.nupkg -Source https://www.myget.org/F/opentelemetry/api/v2/package | |
- name: Create GitHub Release draft | |
if: github.ref_type == 'tag' || inputs.tag | |
shell: pwsh | |
run: | | |
Import-Module .\build\scripts\post-release.psm1 | |
CreateDraftRelease ` | |
-tag '${{ inputs.tag || github.ref_name }}' | |
env: | |
GH_TOKEN: ${{ github.token }} | |
- name: Create GitHub draft Pull Request to update stable build version in props | |
if: | | |
(github.ref_type == 'tag' && startsWith(github.ref_name, 'core-') && !contains(github.ref_name, '-alpha') && !contains(github.ref_name, '-beta') && !contains(github.ref_name, '-rc')) | |
|| (inputs.tag && startsWith(inputs.tag, 'core-') && !contains(inputs.tag, '-alpha') && !contains(inputs.tag, '-beta') && !contains(inputs.tag, '-rc')) | |
shell: pwsh | |
run: | | |
Import-Module .\build\scripts\post-release.psm1 | |
CreateStableVersionUpdatePullRequest ` | |
-tag '${{ inputs.tag || github.ref_name }}' | |
env: | |
GH_TOKEN: ${{ github.token }} |