prepare the v1.7.14.3 CHANGELOG #1348
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 | |
on: | |
push: | |
pull_request: | |
env: | |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
DOTNET_CLI_TELEMETRY_OPTOUT: true | |
jobs: | |
# Enforces the consistency of code formatting using `.editorconfig` and the `dotnet format`. | |
check-format: | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup .NET SDK v7.0.x | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 7.0.x | |
# For the time being (https://github.com/dotnet/format/issues/1500, https://github.com/dotnet/format/issues/1560) we need to use `dotnet-format` instead of `dotnet format` | |
- name: Restore tool | |
run: dotnet tool restore | |
- name: Check format | |
run: dotnet tool run dotnet-format -- --check | |
Consul_AspNetCore: | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
framework: [net5.0, net6.0, net7.0] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup .NET SDK v5.0.x | |
if: matrix.framework == 'net5.0' | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 5.0.x | |
- name: Setup .NET SDK v6.0.x | |
if: matrix.framework == 'net6.0' | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 6.0.x | |
- name: Setup .NET SDK v7.0.x | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 7.0.x | |
- name: Build | |
run: dotnet build Consul.AspNetCore.Test --configuration=Release --framework=${{ matrix.framework }} | |
- name: Run tests | |
shell: bash | |
run: dotnet test Consul.AspNetCore.Test --configuration=Release --logger "GitHubActions;report-warnings=false" --no-build -v=Normal --framework=${{ matrix.framework }} | |
Consul: | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id | |
strategy: | |
matrix: | |
consul: [1.6.10, 1.7.14, 1.8.19, 1.9.17, 1.10.12, 1.11.11, 1.12.9, 1.13.9, 1.14.11, 1.15.9, 1.16.5, 1.17.2] | |
framework: [net461, net5.0, net6.0, net7.0] | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup .NET SDK v5.0.x | |
if: matrix.framework == 'net5.0' | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 5.0.x | |
- name: Setup .NET SDK v6.0.x | |
if: matrix.framework == 'net6.0' | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 6.0.x | |
- name: Setup .NET SDK v7.0.x | |
uses: actions/setup-dotnet@v4 | |
with: | |
# TODO: Workaround for the https://github.com/microsoft/vstest/issues/4549 | |
# use dotnet-version: 7.0.x when the 7.0.401+ is avaialble | |
dotnet-version: 7.0.307 | |
- name: Setup Consul Enterprise URL | |
# Consul enterprise until version 1.10.0 can be run even without a valid license, | |
# so we take advantage of that and run enterprise tests for versions lower than 1.10.0. | |
# This is still necessary although a valid license has been configured in the repository settings | |
# because the license secret is unavailable when the pull request is created from a fork. | |
if: ${{ env.CONSUL_LICENSE != '' || !startsWith(matrix.consul, '1.1') }} | |
run: | | |
echo "RUN_CONSUL_ENTERPRISE_TESTS=1" >> $GITHUB_ENV | |
# We've decided to pause using the CONSUL_LICENSE for tests because the license would need to be renewed periodically. | |
# Otherwise, new builds of consul are going to fail with "license expiration date is before version build date" errors. | |
# Mind that, we are still running enterprise 1.10.0. | |
# env: | |
# CONSUL_LICENSE: ${{ secrets.CONSUL_LICENSE }} | |
- name: Download Consul | |
shell: bash | |
run: | | |
cd Consul.Test | |
SYSTEM=$(uname | sed 's/MINGW.*/windows/' | tr A-Z a-z) | |
if [[ $RUN_CONSUL_ENTERPRISE_TESTS == 1 ]] | |
then | |
curl -sSL https://releases.hashicorp.com/consul/${{ matrix.consul }}+ent/consul_${{ matrix.consul }}+ent_${SYSTEM}_amd64.zip -o consul.zip | |
else | |
curl -sSL https://releases.hashicorp.com/consul/${{ matrix.consul }}/consul_${{ matrix.consul }}_${SYSTEM}_amd64.zip -o consul.zip | |
fi | |
unzip consul.zip | |
rm consul.zip | |
# TODO: Workaround for the https://github.com/microsoft/vstest/issues/4549 | |
# use dotnet-version: 7.0.x when the 7.0.401+ is avaialble | |
- name: Workaround for the https://github.com/microsoft/vstest/issues/4549 (net461&7.0.400) | |
if: matrix.framework == 'net461' | |
shell: bash | |
run: | | |
dotnet new globaljson --sdk-version 7.0.300 --roll-forward=latestPatch --force | |
- name: Build | |
run: dotnet build Consul.Test --configuration=Release --framework=${{ matrix.framework }} | |
- name: Run tests | |
shell: bash | |
run: | | |
./Consul.Test/consul agent -dev -config-file Consul.Test/test_config.json -log-file consul.log >consul-stdout.log 2>consul-stderr.log & | |
dotnet test Consul.Test --configuration=Release --logger "GitHubActions;report-warnings=false" --no-build -v=Normal --framework=${{ matrix.framework }} | |
env: | |
RUN_CONSUL_ENTERPRISE_TESTS: ${{env.RUN_CONSUL_ENTERPRISE_TESTS }} | |
CONSUL_LICENSE: ${{ secrets.CONSUL_LICENSE }} | |
CONSUL_AGENT_CONFIG_PATH: ${{ github.workspace }}/Consul.Test/test_config.json | |
- name: Upload Consul logs | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: consul-logs-${{ matrix.consul }}-${{ matrix.framework }}-${{ matrix.os }} | |
path: consul*.log | |
package: | |
runs-on: windows-latest | |
needs: [Consul_AspNetCore, Consul] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup .NET SDK v7.0.x | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 7.0.x | |
- name: Create NuGet packages | |
run: | | |
if (-not ("${{ github.ref }}" -like "refs/tags/v*")) { | |
$suffix = "preview-$(Get-Date -Format yyyyMMddHHmmss -AsUTC)-$(git rev-parse --short HEAD)" | |
$params = "--version-suffix", $suffix | |
} | |
dotnet pack --configuration=Release --output dist @params | |
if ("${{ github.ref }}" -like "refs/tags/v*") { | |
$tag = "${{ github.ref }}".SubString(11) | |
$expectedConsulFile = "dist/Consul.$tag.nupkg" | |
$expectedConsulAspNetCoreFile = "dist/Consul.AspNetCore.$tag.nupkg" | |
# Check whether the tag and the package version match together | |
if (-not (Test-Path -Path $expectedConsulFile)) { | |
echo "::error ::Expected file $expectedConsulFile doesn't exist" | |
exit 1 | |
} | |
if (-not (Test-Path -Path $expectedConsulAspNetCoreFile)) { | |
echo "::error ::Expected file $expectedConsulAspNetCoreFile doesn't exist" | |
exit 1 | |
} | |
} | |
- name: Upload NuGet package artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: nuget-packages | |
path: dist/*.nupkg | |
# Publish NuGet packages to the preview feed when there is a push to master. | |
# Tests need to succeed for all components and on all platforms first. | |
publish-preview: | |
if: ${{ !github.event.repository.fork && github.ref == 'refs/heads/master' }} | |
needs: package | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download NuGet package artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: nuget-packages | |
path: dist | |
- name: Publish to NuGet | |
run: dotnet nuget push "dist/Consul.*.nupkg" --api-key ${{ secrets.FEEDZIO_API_KEY }} --source https://f.feedz.io/consuldotnet/preview/nuget/index.json | |
# Publish NuGet packages when a tag is pushed. | |
# Tests need to succeed for all components and on all platforms first, | |
# including having a tag name that matches the version number. | |
publish-release: | |
if: ${{ !github.event.repository.fork && startsWith(github.ref, 'refs/tags/v') }} | |
needs: package | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download NuGet package artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: nuget-packages | |
path: dist | |
- name: Publish to NuGet | |
run: dotnet nuget push "dist/Consul.*.nupkg" --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json |