kuma

Форк
0
/
release.yaml 
113 строк · 4.9 Кб
1
name: "release"
2
concurrency:
3
  group: ${{ github.workflow }}-${{ github.ref }}
4
  cancel-in-progress: false
5
on:
6
  release: {}
7
  schedule:
8
    - cron: 0 7 * * *
9
  workflow_dispatch:
10
    inputs:
11
      release:
12
        description: "the version to publish, if you just want to regen the changelog.md set 0.0.0"
13
        required: true
14
        type: string
15
      check:
16
        required: false
17
        type: boolean
18
        default: false
19
        description: "check that everything is published correctly"
20
env:
21
  CHARTS_REPO: "kumahq/charts"
22
  LEGACY_BINARIES: "centos-amd64,darwin-amd64,darwin-arm64,debian-amd64,darwin-amd64,rhel-amd64,ubuntu-amd64,ubuntu-arm64"
23
  BINARIES: "darwin-amd64,darwin-arm64,linux-amd64,linux-arm64"
24
  DOCKER_REPO: "kumahq"
25
  PULP_URL: "https://download.konghq.com/kuma-binaries-release/"
26
  DOCKER_IMAGES: "kumactl,kuma-cp,kuma-dp,kuma-init,kuma-cni"
27
  RELEASE: ${{ inputs.release || '0.0.0' }}
28
  CHECK: ${{ inputs.check || 'false' }}
29
  EDITION: kuma
30
  MIN_VERSION: "1.2.0"
31
  USE_LABEL_IN_VERSION: "false"
32
permissions:
33
  contents: read
34
jobs:
35
  release:
36
    timeout-minutes: 30
37
    runs-on: ubuntu-latest
38
    steps:
39
      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
40
        with:
41
          ref: "master"
42
      - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
43
        with:
44
          go-version-file: go.mod
45
      - name: install-kuma-ci-tools
46
        run: |
47
          echo $(go env GOPATH)/bin >> $GITHUB_PATH
48
          go install github.com/kumahq/ci-tools/cmd/release-tool@latest
49
      - name: Generate GitHub app token
50
        id: github-app-token
51
        uses: actions/create-github-app-token@f4c6bf6752984b3a29fcc135a5e70eb792c40c6b # v1.8.0
52
        with:
53
          app-id: ${{ secrets.APP_ID }}
54
          private-key: ${{ secrets.APP_PRIVATE_KEY }}
55
      - name: create-release
56
        if: env.RELEASE != '0.0.0'
57
        env:
58
          GITHUB_TOKEN: ${{ steps.github-app-token.outputs.token }}
59
        run: |
60
          release-tool release changelog --repo ${{ github.repository }} --release ${{ env.RELEASE }}
61
      - name: check-helm
62
        if: env.RELEASE != '0.0.0' && fromJSON(env.CHECK)
63
        env:
64
          GITHUB_TOKEN: ${{ github.token }}
65
        run: |
66
          release-tool release helm-chart --repo ${{ github.repository }} --charts-repo ${{ env.CHARTS_REPO }} --release ${{ env.RELEASE }}
67
      - name: check-pulp-legacy
68
        env:
69
          GITHUB_TOKEN: ${{ github.token }}
70
        if: fromJSON(env.CHECK) && (startsWith(env.RELEASE, '2.1') || startsWith(env.RELEASE, '2.0') || startsWith(env.RELEASE, '1.'))
71
        run: |
72
          release-tool release pulp-binaries --repo ${{ github.repository }} --release ${{ env.RELEASE }} --binaries ${{ env.LEGACY_BINARIES }}
73
      - name: check-pulp
74
        env:
75
          GITHUB_TOKEN: ${{ github.token }}
76
        if: fromJSON(env.CHECK) && !(startsWith(env.RELEASE, '2.1') || startsWith(env.RELEASE, '2.0') || startsWith(env.RELEASE, '1.'))
77
        run: |
78
          release-tool release pulp-binaries --repo ${{ github.repository }} --release ${{ env.RELEASE }} --binaries ${{ env.BINARIES }} --base-url ${{ env.PULP_URL }}
79
      - name: check-docker
80
        env:
81
          GITHUB_TOKEN: ${{ github.token }}
82
        if: fromJSON(env.CHECK)
83
        run: |
84
          release-tool release docker --repo ${{ github.repository }} --release ${{ env.RELEASE }} --docker-repo ${{env.DOCKER_REPO }} --images ${{ env.DOCKER_IMAGES }}
85
      - name: update-active-branches.json
86
        env:
87
          GITHUB_TOKEN: ${{ steps.github-app-token.outputs.token }}
88
        run: |
89
          release-tool version-file --repo ${{ github.repository }} --active-branches > active-branches.json
90
      - name: update-versions.yml
91
        env:
92
          GITHUB_TOKEN: ${{ steps.github-app-token.outputs.token }}
93
        run: |
94
          release-tool version-file --repo ${{ github.repository }} --edition ${{ env.EDITION }} --min-version ${{ env.MIN_VERSION }} --use-label-for-dev=${{ env.USE_LABEL_IN_VERSION }} > versions.yml
95
      - name: update-CHANGELOG.md
96
        env:
97
          GITHUB_TOKEN: ${{ steps.github-app-token.outputs.token }}
98
        run: |
99
          release-tool changelog.md --repo ${{ github.repository }} > CHANGELOG.md
100
      - name: "Create Pull Request"
101
        uses: peter-evans/create-pull-request@b1ddad2c994a25fbc81a28b3ec0e368bb2021c50 # v6.0.0
102
        with:
103
          commit-message: "docs(CHANGELOG.md): updating changelog and version files"
104
          signoff: true
105
          branch: chore/update-changelog
106
          base: master
107
          delete-branch: true
108
          title: "docs(CHANGELOG.md): updating changelog and version files"
109
          draft: false
110
          labels: ci/skip-test,ci/auto-merge
111
          token: ${{ steps.github-app-token.outputs.token }}
112
          committer: kumahq[bot] <110050114+kumahq[bot]@users.noreply.github.com>
113
          author: kumahq[bot] <110050114+kumahq[bot]@users.noreply.github.com>
114

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.