chore(config): migrate config renovate.json (#143) #407
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: fp-go CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| workflow_dispatch: | |
| inputs: | |
| dryRun: | |
| description: 'Dry-Run' | |
| default: 'true' | |
| required: false | |
| env: | |
| DEFAULT_BRANCH: main | |
| LATEST_GO_VERSION: 1.25.2 # renovate: datasource=golang-version depName=golang | |
| NODE_VERSION: 24 | |
| DRY_RUN: true | |
| jobs: | |
| build-v1: | |
| name: Build v1 (Go ${{ matrix.go-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| go-version: ['1.20.x', '1.21.x', '1.22.x', '1.23.x', '1.24.x', '1.25.x'] | |
| fail-fast: false # Continue with other versions if one fails | |
| steps: | |
| # full checkout for semantic-release | |
| - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Go ${{ matrix.go-version }} | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: ${{ matrix.go-version }} | |
| cache: true # Enable Go module caching | |
| - name: Run tests | |
| run: | | |
| go mod tidy | |
| go test -v -race -coverprofile=coverage.txt -covermode=atomic ./... | |
| # - name: Upload coverage to Codecov | |
| # uses: codecov/codecov-action@v5 | |
| # with: | |
| # file: ./coverage.txt | |
| # flags: v1,go-${{ matrix.go-version }} | |
| # name: v1-go-${{ matrix.go-version }} | |
| # fail_ci_if_error: false | |
| # env: | |
| # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| build-v2: | |
| name: Build v2 (Go ${{ matrix.go-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| go-version: ['1.24.x', '1.25.x'] | |
| steps: | |
| - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Go ${{ matrix.go-version }} | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: ${{ matrix.go-version }} | |
| cache: true # Enable Go module caching | |
| - name: Run tests | |
| run: | | |
| cd v2 | |
| go mod tidy | |
| go test -v -race -coverprofile=coverage.txt -covermode=atomic ./... | |
| # - name: Upload coverage to Codecov | |
| # uses: codecov/codecov-action@v5 | |
| # with: | |
| # file: ./v2/coverage.txt | |
| # flags: v2,go-${{ matrix.go-version }} | |
| # name: v2-go-${{ matrix.go-version }} | |
| # fail_ci_if_error: false | |
| # env: | |
| # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| release: | |
| name: Release | |
| needs: | |
| - build-v1 | |
| - build-v2 | |
| if: github.repository == 'IBM/fp-go' && github.event_name != 'pull_request' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| permissions: | |
| contents: write | |
| issues: write | |
| pull-requests: write | |
| steps: | |
| # full checkout for semantic-release | |
| - name: Full checkout | |
| uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Node.js ${{ env.NODE_VERSION }} | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: ${{ env.LATEST_GO_VERSION }} | |
| cache: true # Enable Go module caching | |
| - name: Determine release mode | |
| id: release-mode | |
| run: | | |
| if [[ "${{ github.event_name }}" == "workflow_dispatch" && "${{ github.event.inputs.dryRun }}" != "true" ]]; then | |
| echo "DRY_RUN=false" >> $GITHUB_ENV | |
| elif [[ "${{ github.ref }}" == "refs/heads/${{ env.DEFAULT_BRANCH }}" ]]; then | |
| echo "DRY_RUN=false" >> $GITHUB_ENV | |
| elif [[ "${{ github.ref }}" =~ ^refs/heads/v[0-9]+(\.[0-9]+)?$ ]]; then | |
| echo "DRY_RUN=false" >> $GITHUB_ENV | |
| fi | |
| - name: Run semantic release | |
| run: | | |
| npx -p conventional-changelog-conventionalcommits -p semantic-release semantic-release --dry-run ${{ env.DRY_RUN }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |