- Release v1.0.0 #1
This file contains hidden or 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: release-ci | |
| on: | |
| push: | |
| branches: | |
| - release/** | |
| tags: | |
| - 'v*' | |
| jobs: | |
| release: | |
| name: Build, Pack & Publish | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # Full history required by GitVersion | |
| - name: Install GitVersion | |
| uses: gittools/actions/gitversion/setup@v3 | |
| with: | |
| versionSpec: '5.x' | |
| - name: Determine Version | |
| id: gitversion | |
| uses: gittools/actions/gitversion/execute@v3 | |
| with: | |
| useConfigFile: true | |
| - name: Set package version | |
| id: pkg_version | |
| run: | | |
| if [[ "${{ github.ref }}" == refs/tags/* ]]; then | |
| echo "version=${{ steps.gitversion.outputs.majorMinorPatch }}" >> $GITHUB_OUTPUT | |
| else | |
| echo "version=${{ steps.gitversion.outputs.semVer }}" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Print version | |
| run: | | |
| echo "SemVer : ${{ steps.gitversion.outputs.semVer }}" | |
| echo "MajorMinorPatch: ${{ steps.gitversion.outputs.majorMinorPatch }}" | |
| echo "Package version: ${{ steps.pkg_version.outputs.version }}" | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Restore | |
| run: dotnet restore ActiveForge/ActiveForge.sln | |
| - name: Build | |
| run: dotnet build ActiveForge/ActiveForge.sln --configuration Release --no-restore | |
| - name: Test | |
| run: dotnet test ActiveForge/ActiveForge.sln --configuration Release --no-build --framework net8.0 | |
| - name: Pack — Core | |
| run: | | |
| dotnet pack ActiveForge/src/ActiveForge/ActiveForge.csproj \ | |
| --configuration Release --no-build \ | |
| -p:PackageVersion=${{ steps.pkg_version.outputs.version }} \ | |
| --output ./artifacts | |
| - name: Pack — SqlServer | |
| run: | | |
| dotnet pack ActiveForge/src/ActiveForge.SqlServer/ActiveForge.SqlServer.csproj \ | |
| --configuration Release --no-build \ | |
| -p:PackageVersion=${{ steps.pkg_version.outputs.version }} \ | |
| --output ./artifacts | |
| - name: Pack — PostgreSQL | |
| run: | | |
| dotnet pack ActiveForge/src/ActiveForge.PostgreSQL/ActiveForge.PostgreSQL.csproj \ | |
| --configuration Release --no-build \ | |
| -p:PackageVersion=${{ steps.pkg_version.outputs.version }} \ | |
| --output ./artifacts | |
| - name: Pack — SQLite | |
| run: | | |
| dotnet pack ActiveForge/src/ActiveForge.SQLite/ActiveForge.SQLite.csproj \ | |
| --configuration Release --no-build \ | |
| -p:PackageVersion=${{ steps.pkg_version.outputs.version }} \ | |
| --output ./artifacts | |
| - name: Pack — MongoDB | |
| run: | | |
| dotnet pack ActiveForge/src/ActiveForge.MongoDB/ActiveForge.MongoDB.csproj \ | |
| --configuration Release --no-build \ | |
| -p:PackageVersion=${{ steps.pkg_version.outputs.version }} \ | |
| --output ./artifacts | |
| - name: List artifacts | |
| run: ls -la ./artifacts/ | |
| - name: Publish to GitHub Packages | |
| run: | | |
| dotnet nuget add source \ | |
| --username ${{ github.repository_owner }} \ | |
| --password ${{ secrets.GITHUB_TOKEN }} \ | |
| --store-password-in-clear-text \ | |
| --name github \ | |
| "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" | |
| dotnet nuget push "./artifacts/*.nupkg" \ | |
| --source github \ | |
| --skip-duplicate | |
| - name: Publish to NuGet.org | |
| if: startsWith(github.ref, 'refs/tags/') | |
| run: | | |
| dotnet nuget push "./artifacts/*.nupkg" \ | |
| --api-key ${{ secrets.NUGET_API_KEY }} \ | |
| --source https://api.nuget.org/v3/index.json \ | |
| --skip-duplicate |