github.com/metasources/buildx@v0.0.0-20230418141019-7aa1459cedea/.github/workflows/update-bootstrap-tools.yml (about)

     1  name: PR for latest versions of bootstrap tools
     2  on:
     3    schedule:
     4      - cron: "0 8 * * *" # 3 AM EST
     5  
     6    workflow_dispatch:
     7  
     8  env:
     9    GO_VERSION: "1.19.x"
    10    GO_STABLE_VERSION: true
    11  
    12  jobs:
    13    update-bootstrap-tools:
    14      runs-on: ubuntu-latest
    15      if: github.repository == 'metasources/buildx' # only run for main repo
    16      steps:
    17        - uses: actions/checkout@v3
    18  
    19        - uses: actions/setup-go@v4
    20          with:
    21            go-version: ${{ env.GO_VERSION }}
    22            stable: ${{ env.GO_STABLE_VERSION }}
    23  
    24        - run: |
    25            GOLANGCILINT_LATEST_VERSION=$(go list -m -json github.com/golangci/golangci-lint@latest 2>/dev/null | jq -r '.Version')
    26            BOUNCER_LATEST_VERSION=$(go list -m -json github.com/wagoodman/go-bouncer@latest 2>/dev/null | jq -r '.Version')
    27            CHRONICLE_LATEST_VERSION=$(go list -m -json github.com/anchore/chronicle@latest 2>/dev/null | jq -r '.Version')
    28            GORELEASER_LATEST_VERSION=$(go list -m -json github.com/goreleaser/goreleaser@latest 2>/dev/null | jq -r '.Version')
    29            GOSIMPORTS_LATEST_VERSION=$(go list -m -json github.com/rinchsan/gosimports@latest 2>/dev/null | jq -r '.Version')
    30            YAJSV_LATEST_VERSION=$(go list -m -json github.com/neilpa/yajsv@latest 2>/dev/null | jq -r '.Version')
    31            COSIGN_LATEST_VERSION=$(go list -m -json github.com/sigstore/cosign@latest 2>/dev/null | jq -r '.Version')
    32            GLOW_LATEST_VERSION=$(go list -m -json github.com/charmbracelet/glow@latest 2>/dev/null | jq -r '.Version')
    33            
    34            # update version variables in the Makefile
    35            sed -r -i -e 's/^(GOLANGCILINT_VERSION := ).*/\1'${GOLANGCILINT_LATEST_VERSION}'/' Makefile
    36            sed -r -i -e 's/^(BOUNCER_VERSION := ).*/\1'${BOUNCER_LATEST_VERSION}'/' Makefile
    37            sed -r -i -e 's/^(CHRONICLE_VERSION := ).*/\1'${CHRONICLE_LATEST_VERSION}'/' Makefile
    38            sed -r -i -e 's/^(GORELEASER_VERSION := ).*/\1'${GORELEASER_LATEST_VERSION}'/' Makefile
    39            sed -r -i -e 's/^(GOSIMPORTS_VERSION := ).*/\1'${GOSIMPORTS_LATEST_VERSION}'/' Makefile
    40            sed -r -i -e 's/^(YAJSV_VERSION := ).*/\1'${YAJSV_LATEST_VERSION}'/' Makefile
    41            sed -r -i -e 's/^(COSIGN_VERSION := ).*/\1'${COSIGN_LATEST_VERSION}'/' Makefile
    42            sed -r -i -e 's/^(GLOW_VERSION := ).*/\1'${GLOW_LATEST_VERSION}'/' Makefile
    43            
    44            # export the versions for use with create-pull-request
    45            echo "GOLANGCILINT=$GOLANGCILINT_LATEST_VERSION" >> $GITHUB_OUTPUT
    46            echo "BOUNCER=$BOUNCER_LATEST_VERSION" >> $GITHUB_OUTPUT
    47            echo "CHRONICLE=$CHRONICLE_LATEST_VERSION" >> $GITHUB_OUTPUT
    48            echo "GORELEASER=$GORELEASER_LATEST_VERSION" >> $GITHUB_OUTPUT
    49            echo "GOSIMPORTS=$GOSIMPORTS_LATEST_VERSION" >> $GITHUB_OUTPUT
    50            echo "YAJSV=$YAJSV_LATEST_VERSION" >> $GITHUB_OUTPUT
    51            echo "COSIGN=$COSIGN_LATEST_VERSION" >> $GITHUB_OUTPUT
    52            echo "GLOW=GLOW_LATEST_VERSION" >> $GITHUB_OUTPUT
    53          id: latest-versions
    54  
    55        - uses: tibdex/github-app-token@v1
    56          id: generate-token
    57          with:
    58            app_id: ${{ secrets.TOKEN_APP_ID }}
    59            private_key: ${{ secrets.TOKEN_APP_PRIVATE_KEY }}
    60  
    61        - uses: peter-evans/create-pull-request@v5
    62          with:
    63            signoff: true
    64            delete-branch: true
    65            branch: auto/latest-bootstrap-tools
    66            labels: dependencies
    67            commit-message: 'chore(deps): update bootstrap tools to latest versions'
    68            title: 'chore(deps): update bootstrap tools to latest versions'
    69            body: |
    70              - [golangci-lint ${{ steps.latest-versions.outputs.GOLANGCILINT }}](https://github.com/golangci/golangci-lint/releases/tag/${{ steps.latest-versions.outputs.GOLANGCILINT }})
    71              - [bouncer ${{ steps.latest-versions.outputs.BOUNCER }}](https://github.com/wagoodman/go-bouncer/releases/tag/${{ steps.latest-versions.outputs.BOUNCER }})
    72              - [chronicle ${{ steps.latest-versions.outputs.CHRONICLE }}](https://github.com/anchore/chronicle/releases/tag/${{ steps.latest-versions.outputs.CHRONICLE }})
    73              - [goreleaser ${{ steps.latest-versions.outputs.GORELEASER }}](https://github.com/goreleaser/goreleaser/releases/tag/${{ steps.latest-versions.outputs.GORELEASER }})
    74              - [gosimports ${{ steps.latest-versions.outputs.GOSIMPORTS }}](https://github.com/rinchsan/gosimports/releases/tag/${{ steps.latest-versions.outputs.GOSIMPORTS }})
    75              - [yajsv ${{ steps.latest-versions.outputs.YAJSV }}](https://github.com/neilpa/yajsv/releases/tag/${{ steps.latest-versions.outputs.YAJSV }})
    76              - [cosign ${{ steps.latest-versions.outputs.COSIGN }}](https://github.com/sigstore/cosign/releases/tag/${{ steps.latest-versions.outputs.COSIGN }})  
    77              - [glow ${{ steps.latest-versions.outputs.GLOW }}](https://github.com/charmbracelet/glow/releases/tag/${{ steps.latest-versions.outputs.GLOW }})  
    78              This is an auto-generated pull request to update all of the bootstrap tools to the latest versions.
    79            token: ${{ steps.generate-token.outputs.token }}