fix(deps): update go dependencies (major) #399
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.21.6 # renovate: datasource=golang-version depName=golang | |
| NODE_VERSION: 22 | |
| 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Go ${{ matrix.go-version }} | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: ${{ matrix.go-version }} | |
| cache: true # Enable Go module caching | |
| - name: Run tests | |
| run: | | |
| go mod tidy | |
| go test -v ./... | |
| 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Go ${{ matrix.go-version }} | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: ${{ matrix.go-version }} | |
| cache: true # Enable Go module caching | |
| - name: Run tests | |
| run: | | |
| cd v2 | |
| go mod tidy | |
| go test -v ./... | |
| 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Node.js ${{ env.NODE_VERSION }} | |
| uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'npm' # Enable npm caching | |
| - name: Set up Go | |
| uses: actions/setup-go@v6 | |
| 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 }} |