name: "Post release"
on:
  release:
    types:
      - published

env:
  # https://github.com/actions/setup-go#supported-version-syntax
  # ex:
  # - 1.18beta1 -> 1.18.0-beta.1
  # - 1.18rc1 -> 1.18.0-rc.1
  GO_VERSION: '1.24'

jobs:
  update-gha-assets:
    name: "Update GitHub Action assets"
    runs-on: ubuntu-latest
    env:
      GITHUB_TOKEN: ${{ secrets.GOLANGCI_LINT_TOKEN }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-go@v5
        with:
          go-version: ${{ env.GO_VERSION }}

      - name: Update GitHub Action config
        run: make assets/github-action-config.json

      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v7
        with:
          base: main
          token: ${{ secrets.GOLANGCI_LINT_TOKEN }}
          branch-suffix: timestamp
          title: "docs: update GitHub Action assets"
          delete-branch: true

  update-assets:
    name: "Update documentation assets"
    runs-on: ubuntu-latest
    env:
      GITHUB_TOKEN: ${{ secrets.GOLANGCI_LINT_TOKEN }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-go@v5
        with:
          go-version: ${{ env.GO_VERSION }}

      - name: Update reference files
        run: cp .golangci.next.reference.yml .golangci.reference.yml

      - name: Update JSON schema files
        run: cp jsonschema/golangci.next.jsonschema.json jsonschema/golangci.jsonschema.json

      - name: Update information
        run: make website_dump_info

      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v7
        with:
          base: main
          token: ${{ secrets.GOLANGCI_LINT_TOKEN }}
          branch-suffix: timestamp
          title: "docs: update documentation assets"
          delete-branch: true
          body: |
            - [ ] update changelog
            - [ ] add previous version JSON Schema

  check-install-script:
    name: Installation script (remote)
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b "./install-golangci-lint"
