build(deps): bump actions/checkout from 6 to 7 #503
Workflow file for this run
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: "CI" | |
| on: | |
| push: | |
| branches: | |
| - master | |
| tags: | |
| - 'v*.*.*' | |
| release: | |
| types: [published] | |
| pull_request: | |
| workflow_dispatch: | |
| # The workflow only reads the repo; publishing uses the NUGET_API_KEY secret, not the token. | |
| permissions: | |
| contents: read | |
| # Cancel superseded runs on rapid PR updates; never cancel master/tag/release builds. | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| env: | |
| DOTNET_CLI_TELEMETRY_OPTOUT: true | |
| DOTNET_NOLOGO: true | |
| HUSKY: 0 | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ macOS-latest, ubuntu-latest, windows-latest ] | |
| name: ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 25 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5.3.0 | |
| with: | |
| dotnet-version: | | |
| 8.x | |
| 9.x | |
| 10.x | |
| - name: Cache NuGet packages | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.nuget/packages | |
| key: nuget-${{ runner.os }}-${{ hashFiles('Directory.Packages.props', '**/*.fsproj', '**/*.csproj') }} | |
| restore-keys: nuget-${{ runner.os }}- | |
| - name: Build & Test | |
| run: dotnet fsi build.fsx -- --target Test | |
| - name: Pack | |
| run: dotnet fsi build.fsx -- --target Pack | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: nuget-${{ matrix.os }} | |
| path: artifacts/*.nupkg | |
| integration: | |
| name: Integration Tests | |
| # ubuntu-latest is the one hosted runner with a working Docker daemon for Linux | |
| # containers — Testcontainers needs it to start the Loki container (macOS runners | |
| # have no Docker; Windows runners only run Windows containers). | |
| runs-on: ubuntu-latest | |
| needs: build | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5.3.0 | |
| with: | |
| dotnet-version: 10.x | |
| - name: Cache NuGet packages | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.nuget/packages | |
| key: nuget-${{ runner.os }}-${{ hashFiles('Directory.Packages.props', '**/*.fsproj', '**/*.csproj') }} | |
| restore-keys: nuget-${{ runner.os }}- | |
| - name: Integration Tests | |
| run: dotnet fsi build.fsx -- --target IntegrationTest | |
| publish: | |
| name: Publish to NuGet | |
| runs-on: ubuntu-latest | |
| needs: [ build, integration ] | |
| if: github.event_name == 'release' && github.event.action == 'published' | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5.3.0 | |
| with: | |
| dotnet-version: 10.x | |
| - name: Pack & Push | |
| run: dotnet fsi build.fsx -- --target Push | |
| env: | |
| NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} |