mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
CI: Trigger release pr workflow when a release is completed (#89062)
This commit is contained in:
parent
13d00e09ab
commit
c6d807e015
61
.drone.yml
61
.drone.yml
@ -2731,6 +2731,47 @@ volumes:
|
|||||||
clone:
|
clone:
|
||||||
retries: 3
|
retries: 3
|
||||||
depends_on: []
|
depends_on: []
|
||||||
|
image_pull_secrets:
|
||||||
|
- gcr
|
||||||
|
- gar
|
||||||
|
kind: pipeline
|
||||||
|
name: create-release-pr
|
||||||
|
node:
|
||||||
|
type: no-parallel
|
||||||
|
platform:
|
||||||
|
arch: amd64
|
||||||
|
os: linux
|
||||||
|
services: []
|
||||||
|
steps:
|
||||||
|
- commands:
|
||||||
|
- apk add perl
|
||||||
|
- v_target=`echo $${TAG} | perl -pe 's/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/v\1.\2.x/'`
|
||||||
|
- default_target=`if [[ -n $$LATEST ]]; then echo 'main'; else echo $$v_target;
|
||||||
|
fi`
|
||||||
|
- backport=`if [[ -n $$LATEST ]]; then echo $$v_target; fi`
|
||||||
|
- curl -L $${GH_CLI_URL} | tar -xz --strip-components=1 -C /usr
|
||||||
|
- gh workflow run -f dry_run=$${DRY_RUN} -f version=$${TAG} -f target=$${TARGET:-$default_target}
|
||||||
|
-f backport=$${BACKPORT:-$default_backport} --repo=grafana/grafana release-pr.yml
|
||||||
|
depends_on: []
|
||||||
|
environment:
|
||||||
|
GH_CLI_URL: https://github.com/cli/cli/releases/download/v2.50.0/gh_2.50.0_linux_amd64.tar.gz
|
||||||
|
GITHUB_TOKEN:
|
||||||
|
from_secret: github_token
|
||||||
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
|
name: create-release-pr
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- promote
|
||||||
|
target: release-pr
|
||||||
|
type: docker
|
||||||
|
volumes:
|
||||||
|
- host:
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
name: docker
|
||||||
|
---
|
||||||
|
clone:
|
||||||
|
retries: 3
|
||||||
|
depends_on: []
|
||||||
environment:
|
environment:
|
||||||
EDITION: oss
|
EDITION: oss
|
||||||
image_pull_secrets:
|
image_pull_secrets:
|
||||||
@ -2787,6 +2828,24 @@ steps:
|
|||||||
from_secret: prerelease_bucket
|
from_secret: prerelease_bucket
|
||||||
image: grafana/grafana-ci-deploy:1.3.3
|
image: grafana/grafana-ci-deploy:1.3.3
|
||||||
name: publish-storybook
|
name: publish-storybook
|
||||||
|
- commands:
|
||||||
|
- apk add perl
|
||||||
|
- v_target=`echo $${TAG} | perl -pe 's/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/v\1.\2.x/'`
|
||||||
|
- default_target=`if [[ -n $$LATEST ]]; then echo 'main'; else echo $$v_target;
|
||||||
|
fi`
|
||||||
|
- backport=`if [[ -n $$LATEST ]]; then echo $$v_target; fi`
|
||||||
|
- curl -L $${GH_CLI_URL} | tar -xz --strip-components=1 -C /usr
|
||||||
|
- gh workflow run -f dry_run=$${DRY_RUN} -f version=$${TAG} -f target=$${TARGET:-$default_target}
|
||||||
|
-f backport=$${BACKPORT:-$default_backport} --repo=grafana/grafana release-pr.yml
|
||||||
|
depends_on:
|
||||||
|
- publish-artifacts
|
||||||
|
- publish-static-assets
|
||||||
|
environment:
|
||||||
|
GH_CLI_URL: https://github.com/cli/cli/releases/download/v2.50.0/gh_2.50.0_linux_amd64.tar.gz
|
||||||
|
GITHUB_TOKEN:
|
||||||
|
from_secret: github_token
|
||||||
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
|
name: create-release-pr
|
||||||
trigger:
|
trigger:
|
||||||
event:
|
event:
|
||||||
- promote
|
- promote
|
||||||
@ -4893,6 +4952,6 @@ kind: secret
|
|||||||
name: gcr_credentials
|
name: gcr_credentials
|
||||||
---
|
---
|
||||||
kind: signature
|
kind: signature
|
||||||
hmac: 08f38b820f97302de03a9fdfd39fb12c185bb36170704cf7591c16f33c3e4d31
|
hmac: 043028c50d984e1ea98a294c6746df1388cb0b7d7976f82f3dd0004fc493bafc
|
||||||
|
|
||||||
...
|
...
|
||||||
|
2
.github/workflows/release-pr.yml
vendored
2
.github/workflows/release-pr.yml
vendored
@ -57,6 +57,6 @@ jobs:
|
|||||||
- name: Create PR with backports
|
- name: Create PR with backports
|
||||||
if: "${{ github.event.inputs.backport != '' }}"
|
if: "${{ github.event.inputs.backport != '' }}"
|
||||||
run: >
|
run: >
|
||||||
gh pr create -l "backport-${{ inputs.backport }}" --dry-run=${{ inputs.dry_run }} -H "release/${{ inputs.version }}" -B "${{ inputs.target }}" --title "Release: ${{ inputs.version }}" --body "These code changes must be merged after a release is complete"
|
gh pr create -l "backport ${{ inputs.backport }}" --dry-run=${{ inputs.dry_run }} -H "release/${{ inputs.version }}" -B "${{ inputs.target }}" --title "Release: ${{ inputs.version }}" --body "These code changes must be merged after a release is complete"
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
|
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
|
||||||
|
@ -42,6 +42,7 @@ load(
|
|||||||
)
|
)
|
||||||
|
|
||||||
ver_mode = "release"
|
ver_mode = "release"
|
||||||
|
semver_regex = r"^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$"
|
||||||
|
|
||||||
def retrieve_npm_packages_step():
|
def retrieve_npm_packages_step():
|
||||||
return {
|
return {
|
||||||
@ -59,6 +60,34 @@ def retrieve_npm_packages_step():
|
|||||||
"commands": ["./bin/build artifacts npm retrieve --tag ${DRONE_TAG}"],
|
"commands": ["./bin/build artifacts npm retrieve --tag ${DRONE_TAG}"],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def release_pr_step(depends_on = []):
|
||||||
|
return {
|
||||||
|
"name": "create-release-pr",
|
||||||
|
"image": images["curl"],
|
||||||
|
"depends_on": depends_on,
|
||||||
|
"environment": {
|
||||||
|
"GITHUB_TOKEN": from_secret("github_token"),
|
||||||
|
"GH_CLI_URL": "https://github.com/cli/cli/releases/download/v2.50.0/gh_2.50.0_linux_amd64.tar.gz",
|
||||||
|
},
|
||||||
|
"commands": [
|
||||||
|
"apk add perl",
|
||||||
|
"v_target=`echo $${{TAG}} | perl -pe 's/{}/v\\1.\\2.x/'`".format(semver_regex),
|
||||||
|
"default_target=`if [[ -n $$LATEST ]]; then echo 'main'; else echo $$v_target; fi`",
|
||||||
|
"backport=`if [[ -n $$LATEST ]]; then echo $$v_target; fi`",
|
||||||
|
# Install gh CLI
|
||||||
|
"curl -L $${GH_CLI_URL} | tar -xz --strip-components=1 -C /usr",
|
||||||
|
# Run the release-pr workflow
|
||||||
|
"gh workflow run " +
|
||||||
|
"-f dry_run=$${DRY_RUN} " +
|
||||||
|
"-f version=$${TAG} " +
|
||||||
|
# If the submitter has set a target branch, then use that, otherwise use the default
|
||||||
|
"-f target=$${TARGET:-$default_target} " +
|
||||||
|
# If the submitter has set a backport branch, then use that, otherwise use the default
|
||||||
|
"-f backport=$${BACKPORT:-$default_backport} " +
|
||||||
|
"--repo=grafana/grafana release-pr.yml",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
def release_npm_packages_step():
|
def release_npm_packages_step():
|
||||||
return {
|
return {
|
||||||
"name": "release-npm-packages",
|
"name": "release-npm-packages",
|
||||||
@ -136,9 +165,20 @@ def publish_artifacts_pipelines(mode):
|
|||||||
publish_artifacts_step(),
|
publish_artifacts_step(),
|
||||||
publish_static_assets_step(),
|
publish_static_assets_step(),
|
||||||
publish_storybook_step(),
|
publish_storybook_step(),
|
||||||
|
release_pr_step(depends_on = ["publish-artifacts", "publish-static-assets"]),
|
||||||
]
|
]
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
pipeline(
|
||||||
|
name = "create-release-pr",
|
||||||
|
trigger = {
|
||||||
|
"event": ["promote"],
|
||||||
|
"target": "release-pr",
|
||||||
|
},
|
||||||
|
steps = [
|
||||||
|
release_pr_step(),
|
||||||
|
],
|
||||||
|
),
|
||||||
pipeline(
|
pipeline(
|
||||||
name = "publish-artifacts-{}".format(mode),
|
name = "publish-artifacts-{}".format(mode),
|
||||||
trigger = trigger,
|
trigger = trigger,
|
||||||
|
Loading…
Reference in New Issue
Block a user