update dotnet workflow (#1669)

* cherry-pick change in dotnet workflow

* delete openai test workflow as it's part of dotnet-build already
This commit is contained in:
Xiaoyun Zhang 2024-02-13 13:28:51 -08:00 committed by GitHub
parent 8311a87eb3
commit b05b148cec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 112 additions and 65 deletions

View File

@ -4,21 +4,25 @@
name: dotnet-ci
on:
workflow_dispatch:
pull_request:
branches: [ "main" ]
branches: [ "dotnet" ]
paths:
- 'dotnet/**'
push:
branches: [ "dotnet" ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' || github.ref != 'refs/heads/dotnet' }}
permissions:
contents: read
packages: write
jobs:
build:
name: CI
name: Build
runs-on: ubuntu-latest
defaults:
run:
@ -28,10 +32,111 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
global-json-file: global.json
global-json-file: dotnet/global.json
- name: Restore dependencies
run: dotnet restore
run: |
# dotnet nuget add source --name dotnet-tool https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json --configfile NuGet.config
dotnet restore -bl
- name: Build
run: dotnet build --no-restore
run: |
echo "Build AutoGen"
dotnet build --no-restore --configuration Release -bl /p:SignAssembly=true
- name: Unit Test
run: dotnet test --no-build --verbosity normal
run: dotnet test --no-build -bl --configuration Release
openai-test:
name: Run openai test
runs-on: ubuntu-latest
environment: dotnet
defaults:
run:
working-directory: dotnet
if: success() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dotnet')
needs: build
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
global-json-file: dotnet/global.json
- name: Restore dependencies
run: |
dotnet restore -bl
- name: Build
run: |
echo "Build AutoGen"
dotnet build --no-restore --configuration Release -bl /p:SignAssembly=true
- name: OpenAI Test
run: dotnet test --no-build -bl --configuration Release
env:
AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }}
AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
AZURE_GPT_35_MODEL_ID: ${{ secrets.AZURE_GPT_35_MODEL_ID }}
OEPNAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
- name: Pack
run: |
echo "Create nightly build package"
dotnet pack --no-build --configuration Release --output './output/nightly' -p:VersionSuffix=nightly-${{github.run_id}} -bl
echo "Create release build package"
dotnet pack --no-build --configuration Release --output './output/release' -bl
echo "ls output directory"
ls -R ./output
- name: Upload package
uses: actions/upload-artifact@v2
with:
name: nightly
path: ./dotnet/output/nightly
- name: Upload package
uses: actions/upload-artifact@v2
with:
name: release
path: ./dotnet/output/release
publish:
environment: dotnet-internal-feed
name: Publish to nightly feeds
runs-on: ubuntu-latest
defaults:
run:
working-directory: dotnet
needs: openai-test
steps:
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '6.0.x'
source-url: https://devdiv.pkgs.visualstudio.com/DevDiv/_packaging/AutoGen/nuget/v3/index.json
env:
NUGET_AUTH_TOKEN: ${{ secrets.AZURE_DEVOPS_TOKEN }}
- uses: actions/download-artifact@v2
with:
name: nightly
path: ./dotnet/output/nightly
- uses: actions/download-artifact@v2
with:
name: release
path: ./dotnet/output/release
- name: Publish nightly package to Azure Devops
run: |
echo "Publish nightly package to Azure Devops"
echo "ls output directory"
ls -R ./output/nightly
dotnet nuget push --api-key AzureArtifacts ./output/nightly/*.nupkg --skip-duplicate
env:
AZURE_ARTIFACTS_FEED_URL: https://devdiv.pkgs.visualstudio.com/DevDiv/_packaging/AutoGen/nuget/v3/index.json
NUGET_AUTH_TOKEN: ${{ secrets.AZURE_DEVOPS_TOKEN }}
- name: Publish nightly package to github package
run: |
echo "Publish nightly package to github package"
echo "ls output directory"
ls -R ./output/nightly
dotnet nuget push --api-key ${{ secrets.GITHUB_TOKEN }} --source "https://nuget.pkg.github.com/microsoft/index.json" ./output/nightly/*.nupkg --skip-duplicate
- name: Publish nightly package to agentchat myget feed
run: |
echo "Publish nightly package to agentchat myget feed"
echo "ls output directory"
ls -R ./output/nightly
dotnet nuget push --api-key ${{ secrets.MYGET_TOKEN }} --source "https://www.myget.org/F/agentchat/api/v3/index.json" ./output/nightly/*.nupkg --skip-duplicate
env:
MYGET_TOKEN: ${{ secrets.MYGET_TOKEN }}

View File

@ -1,58 +0,0 @@
name: run-openai-test-and-notebooks
on:
pull_request_target:
branches: [ "main" ]
paths:
- 'dotnet/**'
env:
BUILD_CONFIGURATION: Release # set this to the appropriate build configuration
permissions: {}
# actions: read
# checks: read
# contents: read
# deployments: read
jobs:
build:
environment: dotnet
name: run-openai-test-and-notebooks
runs-on: ubuntu-latest
defaults:
run:
working-directory: dotnet
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
global-json-file: dotnet/global.json
- name: Restore dependencies
run: dotnet restore
- name: Restore tool
run: dotnet tool restore
- name: Build
run: dotnet build --no-restore -p:VersionSuffix=$GITHUB_RUN_ID --configuration '${{ env.BUILD_CONFIGURATION }}'
- name: Pack
run: dotnet pack --no-restore -p:VersionSuffix=$GITHUB_RUN_ID --no-build --configuration '${{ env.BUILD_CONFIGURATION }}' --output ./artifacts
- name: run all tests
run: dotnet test --no-restore --no-build --configuration '${{ env.BUILD_CONFIGURATION }}'
env:
AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }}
AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
AZURE_GPT_35_MODEL_ID: ${{ secrets.AZURE_GPT_35_MODEL_ID }}
- name: Add local feed
run: dotnet nuget add source --name local artifacts --configfile NuGet.config
- name: Perform a Pester test from the .tools/run_all_notebooks.ps1
shell: pwsh
run: |
Invoke-Pester .tools/run_all_notebook.ps1 -Passthru
env:
AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }}
AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
AZURE_GPT_35_MODEL_ID: ${{ secrets.AZURE_GPT_35_MODEL_ID }}