CI: Allow RGM to create msi for multiple editions (#71883)

* Allow RGM to create msi for multiple editions

* Remove suffix from build-windows-installer step

* Invert exit code on verify_release_pipeline
pull/71897/head
Guilherme Caulada 2 years ago committed by GitHub
parent 017ab9ddd8
commit 4c80bcf35f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 80
      .drone.yml
  2. 2
      scripts/drone/events/release.star
  3. 18
      scripts/drone/rgm.star
  4. 23
      scripts/drone/steps/lib.star

@ -3326,8 +3326,8 @@ steps:
- apt-get update && apt-get install -yq gettext
- printenv GCP_KEY | base64 -d > /tmp/key.json
- gcloud auth activate-service-account --key-file=/tmp/key.json
- ./scripts/list-release-artifacts.sh ${DRONE_TAG} | xargs -n1 gsutil stat | grep
"No URLs matched"
- '! ./scripts/list-release-artifacts.sh ${DRONE_TAG} | xargs -n1 gsutil stat |
grep "No URLs matched"'
depends_on:
- clone
environment:
@ -3470,7 +3470,7 @@ environment:
image_pull_secrets:
- dockerconfigjson
kind: pipeline
name: rgm-tag-prerelease-windows
name: rgm-tag-prerelease-windows-oss
platform:
arch: amd64
os: windows
@ -3530,7 +3530,73 @@ clone:
retries: 3
depends_on:
- rgm-tag-prerelease
- rgm-tag-prerelease-windows
environment:
EDITION: enterprise
image_pull_secrets:
- dockerconfigjson
kind: pipeline
name: rgm-tag-prerelease-windows-enterprise
platform:
arch: amd64
os: windows
version: "1809"
services: []
steps:
- commands:
- echo $env:DRONE_RUNNER_NAME
image: mcr.microsoft.com/windows:1809
name: identify-runner
- commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v3.0.40/windows/grabpl.exe
-OutFile grabpl.exe
image: grafana/ci-wix:0.1.1
name: windows-init
- commands:
- $$gcpKey = $$env:GCP_KEY
- '[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($$gcpKey))
> gcpkey.json'
- dos2unix gcpkey.json
- gcloud auth activate-service-account --key-file=gcpkey.json
- rm gcpkey.json
- cp C:\App\nssm-2.24.zip .
- .\grabpl.exe windows-installer --target gs://grafana-prerelease-dev/artifacts/downloads/${DRONE_TAG}/enterprise/release/grafana-enterprise-${DRONE_TAG:1}.windows-amd64.zip
--edition enterprise ${DRONE_TAG}
- $$fname = ((Get-Childitem grafana*.msi -name) -split "`n")[0]
- gsutil cp $$fname gs://grafana-prerelease-dev/artifacts/downloads/${DRONE_TAG}/enterprise/release/
- gsutil cp "$$fname.sha256" gs://grafana-prerelease-dev/artifacts/downloads/${DRONE_TAG}/enterprise/release/
depends_on:
- windows-init
environment:
GCP_KEY:
from_secret: gcp_key
GITHUB_TOKEN:
from_secret: github_token
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/ci-wix:0.1.1
name: build-windows-installer
trigger:
event:
exclude:
- promote
ref:
exclude:
- refs/tags/*-cloud*
include:
- refs/tags/v*
type: docker
volumes:
- host:
path: //./pipe/docker_engine/
name: docker
---
clone:
retries: 3
depends_on:
- rgm-tag-prerelease
- rgm-tag-prerelease-windows-oss
- rgm-tag-prerelease-windows-enterprise
image_pull_secrets:
- dockerconfigjson
kind: pipeline
@ -3546,8 +3612,8 @@ steps:
- apt-get update && apt-get install -yq gettext
- printenv GCP_KEY | base64 -d > /tmp/key.json
- gcloud auth activate-service-account --key-file=/tmp/key.json
- ./scripts/list-release-artifacts.sh ${DRONE_TAG} | xargs -n1 gsutil stat | grep
"No URLs matched"
- '! ./scripts/list-release-artifacts.sh ${DRONE_TAG} | xargs -n1 gsutil stat |
grep "No URLs matched"'
depends_on:
- clone
environment:
@ -4911,6 +4977,6 @@ kind: secret
name: delivery-bot-app-private-key
---
kind: signature
hmac: 7796dccc1ebde8bf6985375aab1803a5d59dd3b8b0ce725d7ce23c5ca39e2c80
hmac: 95007b8a7b6c9fbf7759ed245fc9afda168d765149b7db8ad0c996c9e4d74dc0
...

@ -458,7 +458,7 @@ def verify_release_pipeline(
"apt-get update && apt-get install -yq gettext",
"printenv GCP_KEY | base64 -d > /tmp/key.json",
"gcloud auth activate-service-account --key-file=/tmp/key.json",
"./scripts/list-release-artifacts.sh {} | xargs -n1 gsutil stat | grep \"No URLs matched\"".format(version),
"! ./scripts/list-release-artifacts.sh {} | xargs -n1 gsutil stat | grep \"No URLs matched\"".format(version),
],
}
return pipeline(

@ -103,28 +103,34 @@ def rgm_tag():
depends_on = [],
)
def rgm_windows():
def rgm_windows(edition = "oss"):
return pipeline(
name = "rgm-tag-prerelease-windows",
name = "rgm-tag-prerelease-windows-{}".format(edition),
trigger = tag_trigger,
steps = get_windows_steps(
ver_mode = "release",
bucket = "grafana-prerelease-dev",
edition = edition,
),
depends_on = ["rgm-tag-prerelease"],
platform = "windows",
environment = {"EDITION": "oss"},
environment = {"EDITION": edition},
)
def rgm():
return [
rgm_main(),
rgm_tag(),
rgm_windows(),
rgm_windows(edition = "oss"),
rgm_windows(edition = "enterprise"),
verify_release_pipeline(
name = "rgm-tag-verify-prerelease-assets",
trigger = tag_trigger,
depends_on = ["rgm-tag-prerelease", "rgm-tag-prerelease-windows"],
name = "rgm-tag-verify-prerelease-assets",
bucket = "grafana-prerelease-dev",
depends_on = [
"rgm-tag-prerelease",
"rgm-tag-prerelease-windows-oss",
"rgm-tag-prerelease-windows-enterprise",
],
),
]

@ -1261,12 +1261,13 @@ def windows_clone_step():
],
}
def get_windows_steps(ver_mode, bucket = "%PRERELEASE_BUCKET%"):
def get_windows_steps(ver_mode, bucket = "%PRERELEASE_BUCKET%", edition = "oss"):
"""Generate the list of Windows steps.
Args:
ver_mode: used to differentiate steps for different version modes.
bucket: used to override prerelease bucket.
edition: used to override edition for RGM builds.
Returns:
List of Drone steps.
@ -1315,12 +1316,17 @@ def get_windows_steps(ver_mode, bucket = "%PRERELEASE_BUCKET%"):
"cp C:\\App\\nssm-2.24.zip .",
]
sfx = ""
if edition != "oss":
sfx = "-{}".format(edition)
if ver_mode in ("release",):
version = "${DRONE_TAG:1}"
installer_commands.extend(
[
".\\grabpl.exe windows-installer --target {} --edition oss {}".format(
"gs://{}/{}/oss/{}/grafana-{}.windows-amd64.zip".format(gcp_bucket, ver_part, ver_mode, version),
".\\grabpl.exe windows-installer --target {} --edition {} {}".format(
"gs://{}/{}/{}/{}/grafana{}-{}.windows-amd64.zip".format(gcp_bucket, ver_part, edition, ver_mode, sfx, version),
edition,
ver_part,
),
'$$fname = ((Get-Childitem grafana*.msi -name) -split "`n")[0]',
@ -1329,9 +1335,10 @@ def get_windows_steps(ver_mode, bucket = "%PRERELEASE_BUCKET%"):
if ver_mode == "main":
installer_commands.extend(
[
"gsutil cp $$fname gs://{}/oss/{}/".format(gcp_bucket, dir),
'gsutil cp "$$fname.sha256" gs://{}/oss/{}/'.format(
"gsutil cp $$fname gs://{}/{}/{}/".format(gcp_bucket, edition, dir),
'gsutil cp "$$fname.sha256" gs://{}/{}/{}/'.format(
gcp_bucket,
edition,
dir,
),
],
@ -1339,14 +1346,16 @@ def get_windows_steps(ver_mode, bucket = "%PRERELEASE_BUCKET%"):
else:
installer_commands.extend(
[
"gsutil cp $$fname gs://{}/{}/oss/{}/".format(
"gsutil cp $$fname gs://{}/{}/{}/{}/".format(
gcp_bucket,
ver_part,
edition,
dir,
),
'gsutil cp "$$fname.sha256" gs://{}/{}/oss/{}/'.format(
'gsutil cp "$$fname.sha256" gs://{}/{}/{}/{}/'.format(
gcp_bucket,
ver_part,
edition,
dir,
),
],

Loading…
Cancel
Save