Merge pull request #441 from microsoft/dependabot/nuget/xunit-2.6.0 #998
Workflow file for this run
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
name: CI/CD Pipeline | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
ci: | |
name: Continuous Integration | |
runs-on: ubuntu-latest | |
outputs: | |
latest_version: ${{ steps.tag_generator.outputs.new_version }} | |
is_default_branch: ${{ steps.conditionals_handler.outputs.is_default_branch }} | |
env: | |
ARTIFACTS_FOLDER: ${{ github.workspace }}/Artifacts | |
GITHUB_RUN_NUMBER: ${{ github.run_number }} | |
steps: | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v3.0.3 | |
with: | |
dotnet-version: 7.0.x | |
- name: Data gatherer | |
id: data_gatherer | |
shell: pwsh | |
run: | | |
# Get default branch | |
$repo = 'microsoft/OpenAPI.NET.OData' | |
$defaultBranch = Invoke-RestMethod -Method GET -Uri https://api.github.com/repos/$repo | Select-Object -ExpandProperty default_branch | |
Write-Output "::set-output name=default_branch::$(echo $defaultBranch)" | |
- name: Conditionals handler | |
id: conditionals_handler | |
shell: pwsh | |
run: | | |
$defaultBranch = "${{ steps.data_gatherer.outputs.default_branch }}" | |
$githubRef = "${{ github.ref }}" | |
$isDefaultBranch = 'false' | |
if ( $githubRef -like "*$defaultBranch*" ) { | |
$isDefaultBranch = 'true' | |
} | |
Write-Output "::set-output name=is_default_branch::$(echo $isDefaultBranch)" | |
- name: Checkout repository | |
id: checkout_repo | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
fetch-depth: 0 | |
- if: steps.conditionals_handler.outputs.is_default_branch == 'true' | |
name: Bump GH tag | |
id: tag_generator | |
uses: mathieudutour/github-tag-action@v6.1 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
default_bump: false | |
release_branches: ${{ steps.data_gatherer.outputs.default_branch }} | |
- name: Build projects | |
id: build_projects | |
shell: pwsh | |
run: | | |
$projectsArray = @( | |
'.\src\Microsoft.OpenApi.OData.Reader\Microsoft.OpenAPI.OData.Reader.csproj' | |
) | |
$gitNewVersion = if ("${{ steps.tag_generator.outputs.new_version }}") {"${{ steps.tag_generator.outputs.new_version }}"} else {$null} | |
$projectCurrentVersion = ([xml](Get-Content .\src\Microsoft.OpenApi.OData.Reader\Microsoft.OpenAPI.OData.Reader.csproj)).Project.PropertyGroup.Version | |
$projectNewVersion = $gitNewVersion ?? $projectCurrentVersion | |
$projectsArray | ForEach-Object { | |
dotnet build $PSItem ` | |
-c Release # ` | |
# -o $env:ARTIFACTS_FOLDER ` | |
# /p:Version=$projectNewVersion | |
} | |
# Move NuGet packages to separate folder for pipeline convenience | |
# New-Item Artifacts/NuGet -ItemType Directory | |
# Get-ChildItem Artifacts/*.nupkg | Move-Item -Destination "Artifacts/NuGet" | |
- name: Run unit tests | |
id: run_unit_tests | |
shell: pwsh | |
run: | | |
$testProjectsArray = @( | |
'.\test\Microsoft.OpenAPI.OData.Reader.Tests\Microsoft.OpenAPI.OData.Reader.Tests.csproj' | |
) | |
$testProjectsArray | ForEach-Object { | |
dotnet test $PSItem ` | |
-c Release | |
} | |
# - if: steps.tag_generator.outputs.new_version != '' | |
# name: Upload NuGet packages as artifacts | |
# id: ul_packages_artifact | |
# uses: actions/upload-artifact@v1 | |
# with: | |
# name: NuGet packages | |
# path: Artifacts/NuGet/ | |
cd: | |
if: needs.ci.outputs.is_default_branch == 'true' && needs.ci.outputs.latest_version != '' | |
name: Continuous Deployment | |
needs: ci | |
runs-on: ubuntu-latest | |
steps: | |
# - name: Download and extract NuGet packages | |
# id: dl_packages_artifact | |
# uses: actions/download-artifact@v2 | |
# with: | |
# name: NuGet packages | |
# path: NuGet/ | |
# - name: Push NuGet packages to NuGet.org | |
# id: push_nuget_packages | |
# continue-on-error: true | |
# shell: pwsh | |
# run: | | |
# Get-ChildItem NuGet/*.nupkg | ForEach-Object { | |
# nuget push $PSItem ` | |
# -ApiKey $env:NUGET_API_KEY ` | |
# -Source https://api.nuget.org/v3/index.json | |
# } | |
# env: | |
# NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} | |
- name: Create and publish release | |
id: create_release | |
uses: softprops/action-gh-release@v1 | |
with: | |
name: OpenAPI.Net.OData v${{ needs.ci.outputs.latest_version }} | |
tag_name: v${{ needs.ci.outputs.latest_version }} | |
# files: | | |
# NuGet/Microsoft.OpenApi.${{ needs.ci.outputs.latest_version }}.nupkg | |
# NuGet/Microsoft.OpenApi.Readers.${{ needs.ci.outputs.latest_version }}.nupkg | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# Built with ❤ by [Pipeline Foundation](https://pipeline.foundation) |