From b6ac70aa7f091b01d6d0aee9a54f58e0ff61ff92 Mon Sep 17 00:00:00 2001 From: Austin Drenski Date: Thu, 11 Jan 2024 16:34:05 -0500 Subject: [PATCH] chore: Add support for GitHub Packages | GITHUB_REF | version format | |---------------|--------------------------------------------------| | refs/heads/* | #.#.#-ci.{%Y%m%d}T{%H%M%S}+sha.${GITHUB_SHA:0:9} | | refs/pull/* | #.#.#-pr.{%Y%m%d}T{%H%M%S}+sha.${GITHUB_SHA:0:9} | | refs/tags/v* | #.#.# | See: open-feature/dotnet-sdk#54, open-feature/dotnet-sdk#173 Signed-off-by: Austin Drenski --- .github/workflows/ci.yml | 87 +++++++++++++++++++ .github/workflows/linux-ci.yml | 34 -------- .github/workflows/windows-ci.yml | 34 -------- build/Common.prod.props | 11 +-- build/Common.props | 6 +- build/Common.tests.props | 2 + .../OpenFeature.Contrib.Hooks.Otel.csproj | 2 +- ...Feature.Contrib.Providers.ConfigCat.csproj | 4 +- ...Contrib.Providers.FeatureManagement.csproj | 5 +- ...OpenFeature.Contrib.Providers.Flagd.csproj | 2 +- ...Feature.Contrib.Providers.Flagsmith.csproj | 2 +- ...ure.Contrib.Providers.GOFeatureFlag.csproj | 2 +- 12 files changed, 106 insertions(+), 85 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/linux-ci.yml delete mode 100644 .github/workflows/windows-ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..2bd68c4f --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,87 @@ +name: CI + +on: + push: + branches: [ main ] + paths-ignore: + - '**.md' + pull_request: + branches: [ main ] + paths-ignore: + - '**.md' + +jobs: + build: + strategy: + matrix: + os: [ ubuntu-latest, windows-latest ] + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + submodules: recursive + + - name: Setup .NET SDK + uses: actions/setup-dotnet@v4 + with: + dotnet-version: | + 6.0.x + 7.0.x + + - name: Restore + run: dotnet restore + + - name: Build + run: dotnet build --no-restore + + - name: Test + run: dotnet test --no-build --logger GitHubActions + + packaging: + needs: build + + permissions: + contents: read + packages: write + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + submodules: recursive + + - name: Setup .NET SDK + uses: actions/setup-dotnet@v4 + with: + dotnet-version: | + 6.0.x + 7.0.x + + - name: Restore + run: dotnet restore + + - name: Pack NuGet packages (CI versions) + if: startsWith(github.ref, 'refs/heads/') + run: dotnet pack --no-restore --version-suffix "ci.$(date -u +%Y%m%dT%H%M%S)+sha.${GITHUB_SHA:0:9}" + + - name: Pack NuGet packages (PR versions) + if: startsWith(github.ref, 'refs/pull/') + run: dotnet pack --no-restore --version-suffix "pr.$(date -u +%Y%m%dT%H%M%S)+sha.${GITHUB_SHA:0:9}" + + - name: Publish NuGet packages (base) + if: github.event.pull_request.head.repo.fork == false + run: dotnet nuget push "src/**/*.nupkg" --api-key "${{ secrets.GITHUB_TOKEN }}" --source https://nuget.pkg.github.com/open-feature/index.json + + - name: Publish NuGet packages (fork) + if: github.event.pull_request.head.repo.fork == true + uses: actions/upload-artifact@v4.2.0 + with: + name: nupkgs + path: src/**/*.nupkg diff --git a/.github/workflows/linux-ci.yml b/.github/workflows/linux-ci.yml deleted file mode 100644 index 7313bea5..00000000 --- a/.github/workflows/linux-ci.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Linux - -on: - push: - branches: [ main ] - paths-ignore: - - '**.md' - pull_request: - branches: [ main ] - paths-ignore: - - '**.md' - -jobs: - build-test: - runs-on: ubuntu-latest - - strategy: - matrix: - version: [net6.0,net7.0] - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - submodules: recursive - - - name: Install dependencies - run: dotnet restore - - - name: Build - run: dotnet build --configuration Release --no-restore - - - name: Test ${{ matrix.version }} - run: dotnet test --configuration Release --no-build --logger:"console;verbosity=detailed" diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml deleted file mode 100644 index 3e29f545..00000000 --- a/.github/workflows/windows-ci.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Windows - -on: - push: - branches: [ main ] - paths-ignore: - - '**.md' - pull_request: - branches: [ main ] - paths-ignore: - - '**.md' - -jobs: - build-test: - runs-on: windows-latest - - strategy: - matrix: - version: [net462,net6.0,net7.0] - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - submodules: recursive - - - name: Install dependencies - run: dotnet restore - - - name: Build - run: dotnet build --configuration Release --no-restore - - - name: Test ${{ matrix.version }} - run: dotnet test --configuration Release --no-build --logger:"console;verbosity=detailed" diff --git a/build/Common.prod.props b/build/Common.prod.props index 7badf346..5d0f070c 100644 --- a/build/Common.prod.props +++ b/build/Common.prod.props @@ -2,7 +2,10 @@ + true + true true + true @@ -28,12 +31,4 @@ true snupkg - - - - - - - true - diff --git a/build/Common.props b/build/Common.props index fc34c474..928e20d7 100644 --- a/build/Common.props +++ b/build/Common.props @@ -27,4 +27,8 @@ [1.2,) - \ No newline at end of file + + + + + diff --git a/build/Common.tests.props b/build/Common.tests.props index 8a533a23..9f94a8e4 100644 --- a/build/Common.tests.props +++ b/build/Common.tests.props @@ -28,6 +28,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive + @@ -45,6 +46,7 @@ [4.17.0] [3.1.2] [6.7.0] + [2.3.3] [17.3.2] [5.0.0] [2.4.3,3.0) diff --git a/src/OpenFeature.Contrib.Hooks.Otel/OpenFeature.Contrib.Hooks.Otel.csproj b/src/OpenFeature.Contrib.Hooks.Otel/OpenFeature.Contrib.Hooks.Otel.csproj index f413d1f7..dc3b7cf3 100644 --- a/src/OpenFeature.Contrib.Hooks.Otel/OpenFeature.Contrib.Hooks.Otel.csproj +++ b/src/OpenFeature.Contrib.Hooks.Otel/OpenFeature.Contrib.Hooks.Otel.csproj @@ -3,7 +3,7 @@ OpenFeature.Contrib.Hooks.Otel 0.1.3 - $(VersionNumber) + $(VersionNumber) $(VersionNumber) $(VersionNumber) Open Telemetry Hook for .NET diff --git a/src/OpenFeature.Contrib.Providers.ConfigCat/OpenFeature.Contrib.Providers.ConfigCat.csproj b/src/OpenFeature.Contrib.Providers.ConfigCat/OpenFeature.Contrib.Providers.ConfigCat.csproj index ec83a84b..a5401a75 100644 --- a/src/OpenFeature.Contrib.Providers.ConfigCat/OpenFeature.Contrib.Providers.ConfigCat.csproj +++ b/src/OpenFeature.Contrib.Providers.ConfigCat/OpenFeature.Contrib.Providers.ConfigCat.csproj @@ -3,7 +3,7 @@ OpenFeature.Contrib.Providers.ConfigCat 0.0.1 - $(VersionNumber) + $(VersionNumber) $(VersionNumber) $(VersionNumber) ConfigCat provider for .NET @@ -20,4 +20,4 @@ - \ No newline at end of file + diff --git a/src/OpenFeature.Contrib.Providers.FeatureManagement/OpenFeature.Contrib.Providers.FeatureManagement.csproj b/src/OpenFeature.Contrib.Providers.FeatureManagement/OpenFeature.Contrib.Providers.FeatureManagement.csproj index 85ea512d..88f503e8 100644 --- a/src/OpenFeature.Contrib.Providers.FeatureManagement/OpenFeature.Contrib.Providers.FeatureManagement.csproj +++ b/src/OpenFeature.Contrib.Providers.FeatureManagement/OpenFeature.Contrib.Providers.FeatureManagement.csproj @@ -3,7 +3,8 @@ OpenFeature.Contrib.Provider.FeatureManagement 0.0.1 - $(VersionNumber)-preview + $(VersionNumber) + preview $(VersionNumber) $(VersionNumber) An OpenFeature Provider built on top of the standard Microsoft FeatureManagement Library @@ -16,4 +17,4 @@ - \ No newline at end of file + diff --git a/src/OpenFeature.Contrib.Providers.Flagd/OpenFeature.Contrib.Providers.Flagd.csproj b/src/OpenFeature.Contrib.Providers.Flagd/OpenFeature.Contrib.Providers.Flagd.csproj index f73392e1..e0acb70b 100644 --- a/src/OpenFeature.Contrib.Providers.Flagd/OpenFeature.Contrib.Providers.Flagd.csproj +++ b/src/OpenFeature.Contrib.Providers.Flagd/OpenFeature.Contrib.Providers.Flagd.csproj @@ -3,7 +3,7 @@ OpenFeature.Contrib.Providers.Flagd 0.1.7 - $(VersionNumber) + $(VersionNumber) $(VersionNumber) $(VersionNumber) flagd provider for .NET diff --git a/src/OpenFeature.Contrib.Providers.Flagsmith/OpenFeature.Contrib.Providers.Flagsmith.csproj b/src/OpenFeature.Contrib.Providers.Flagsmith/OpenFeature.Contrib.Providers.Flagsmith.csproj index 73aa89f6..f8a1284a 100644 --- a/src/OpenFeature.Contrib.Providers.Flagsmith/OpenFeature.Contrib.Providers.Flagsmith.csproj +++ b/src/OpenFeature.Contrib.Providers.Flagsmith/OpenFeature.Contrib.Providers.Flagsmith.csproj @@ -4,7 +4,7 @@ netstandard20 OpenFeature.Contrib.Providers.Flagsmith 0.1.5 - $(VersionNumber) + $(VersionNumber) $(VersionNumber) $(VersionNumber) Flagsmith provider for .NET diff --git a/src/OpenFeature.Contrib.Providers.GOFeatureFlag/OpenFeature.Contrib.Providers.GOFeatureFlag.csproj b/src/OpenFeature.Contrib.Providers.GOFeatureFlag/OpenFeature.Contrib.Providers.GOFeatureFlag.csproj index 14f89391..20843093 100644 --- a/src/OpenFeature.Contrib.Providers.GOFeatureFlag/OpenFeature.Contrib.Providers.GOFeatureFlag.csproj +++ b/src/OpenFeature.Contrib.Providers.GOFeatureFlag/OpenFeature.Contrib.Providers.GOFeatureFlag.csproj @@ -3,7 +3,7 @@ OpenFeature.Contrib.GOFeatureFlag 0.1.5 - $(VersionNumber) + $(VersionNumber) $(VersionNumber) $(VersionNumber) GO Feature Flag provider for .NET