[v8.3.x] CI: Sync CI changes (#46085)
* CI: Introduce `build-frontend-packages` step (#45824) * Split frontend build * Fix command name * Update grabpl (cherry picked from commit2f6c827f5d) * CI: Add docs pipeline for `main` pipelines (#45740) * Add docs pipeline for main * Extract trigger docs * Change trigger for main (cherry picked from commitea3e41ea62) * CI: Add more checks to standalone docs pipeline (#46449) * Add build frontend package step * Reorder dependencies * Add codespell and prettier checks (cherry picked from commit82b436afee) * Update golang (#46458) (cherry picked from commita29159f362)
This commit is contained in:
+1
-1
@@ -14,7 +14,7 @@ load('scripts/drone/vault.star', 'secrets')
|
||||
|
||||
def main(ctx):
|
||||
edition = 'oss'
|
||||
return pr_pipelines(edition=edition) + docs_pipelines(edition=edition) + main_pipelines(edition=edition) + release_pipelines() + \
|
||||
return pr_pipelines(edition=edition) + main_pipelines(edition=edition) + release_pipelines() + \
|
||||
publish_image_pipelines('public') + publish_image_pipelines('security') + \
|
||||
publish_artifacts_pipelines('security') + publish_artifacts_pipelines('public') + \
|
||||
publish_npm_pipelines('public') + publish_packages_pipeline() + \
|
||||
|
||||
+369
-199
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -20,7 +20,7 @@ COPY emails emails
|
||||
ENV NODE_ENV production
|
||||
RUN yarn build
|
||||
|
||||
FROM golang:1.17.7-alpine3.15 as go-builder
|
||||
FROM golang:1.17.8-alpine3.15 as go-builder
|
||||
|
||||
RUN apk add --no-cache gcc g++ make
|
||||
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ COPY emails emails
|
||||
ENV NODE_ENV production
|
||||
RUN yarn build
|
||||
|
||||
FROM golang:1.17.7 AS go-builder
|
||||
FROM golang:1.17.8 AS go-builder
|
||||
|
||||
WORKDIR /src/grafana
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"packages:clean": "lerna run clean",
|
||||
"precommit": "yarn run lint-staged",
|
||||
"prettier:check": "prettier --list-different \"**/*.{scss,md,mdx}\"",
|
||||
"prettier:checkDocs": "prettier --check --list-different=false --loglevel=warn \"docs/**.md\" \"packages/**.{ts,tsx,scss,md,mdx}\"",
|
||||
"prettier:write": "prettier --list-different \"**/*.{scss,md,mdx}\" --write",
|
||||
"start": "yarn themes:generate && webpack --progress --color --watch --env noTsCheck=0 --config scripts/webpack/webpack.dev.js",
|
||||
"start:hot": "yarn themes:generate && webpack serve --progress --color --config scripts/webpack/webpack.hot.js",
|
||||
|
||||
@@ -110,7 +110,7 @@ RUN rm dockerize-linux-amd64-v${DOCKERIZE_VERSION}.tar.gz
|
||||
# Use old Debian (this has support into 2022) in order to ensure binary compatibility with older glibc's.
|
||||
FROM debian:stretch-20210208
|
||||
|
||||
ENV GOVERSION=1.17.7 \
|
||||
ENV GOVERSION=1.17.8 \
|
||||
PATH=/usr/local/go/bin:$PATH \
|
||||
GOPATH=/go \
|
||||
NODEVERSION=16.13.0-1nodesource1 \
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
load(
|
||||
'scripts/drone/steps/lib.star',
|
||||
'build_image',
|
||||
'initialize_step',
|
||||
'download_grabpl_step',
|
||||
'lint_frontend_step',
|
||||
'codespell_step',
|
||||
'shellcheck_step',
|
||||
'build_frontend_step',
|
||||
'test_frontend_step',
|
||||
'build_storybook_step',
|
||||
'build_frontend_docs_step',
|
||||
'build_frontend_package_step',
|
||||
'build_docs_website_step',
|
||||
)
|
||||
|
||||
@@ -23,22 +23,42 @@ load(
|
||||
'pipeline',
|
||||
)
|
||||
|
||||
ver_mode = 'pr'
|
||||
|
||||
def docs_pipelines(edition):
|
||||
def docs_pipelines(edition, ver_mode, trigger):
|
||||
steps = [download_grabpl_step()] + initialize_step(edition, platform='linux', ver_mode=ver_mode)
|
||||
steps.extend([
|
||||
build_frontend_step(edition=edition, ver_mode=ver_mode),
|
||||
])
|
||||
|
||||
# Insert remaining steps
|
||||
steps.extend([
|
||||
codespell_step(),
|
||||
lint_docs(),
|
||||
build_frontend_package_step(edition=edition, ver_mode=ver_mode),
|
||||
build_frontend_docs_step(edition=edition),
|
||||
build_docs_website_step(),
|
||||
])
|
||||
|
||||
trigger = {
|
||||
'event': [
|
||||
return pipeline(
|
||||
name='{}-docs'.format(ver_mode), edition=edition, trigger=trigger, services=[], steps=steps,
|
||||
)
|
||||
|
||||
def lint_docs():
|
||||
return {
|
||||
'name': 'lint-docs',
|
||||
'image': build_image,
|
||||
'depends_on': [
|
||||
'initialize',
|
||||
],
|
||||
'environment': {
|
||||
'NODE_OPTIONS': '--max_old_space_size=8192',
|
||||
},
|
||||
'commands': [
|
||||
'yarn run prettier:checkDocs',
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
def trigger_docs():
|
||||
return {
|
||||
'event': [
|
||||
'pull_request',
|
||||
],
|
||||
'paths': {
|
||||
@@ -48,8 +68,3 @@ def docs_pipelines(edition):
|
||||
],
|
||||
},
|
||||
}
|
||||
return [
|
||||
pipeline(
|
||||
name='pr-docs', edition=edition, trigger=trigger, services=[], steps=steps,
|
||||
),
|
||||
]
|
||||
|
||||
@@ -12,12 +12,12 @@ load(
|
||||
'test_frontend_step',
|
||||
'build_backend_step',
|
||||
'build_frontend_step',
|
||||
'build_frontend_package_step',
|
||||
'build_plugins_step',
|
||||
'package_step',
|
||||
'grafana_server_step',
|
||||
'e2e_tests_step',
|
||||
'build_storybook_step',
|
||||
'build_frontend_docs_step',
|
||||
'copy_packages_for_docker_step',
|
||||
'build_docker_images_step',
|
||||
'publish_images_step',
|
||||
@@ -52,6 +52,11 @@ load(
|
||||
'notify_pipeline',
|
||||
)
|
||||
|
||||
load(
|
||||
'scripts/drone/pipelines/docs.star',
|
||||
'docs_pipelines',
|
||||
)
|
||||
|
||||
ver_mode = 'main'
|
||||
|
||||
def get_steps(edition, is_downstream=False):
|
||||
@@ -72,6 +77,7 @@ def get_steps(edition, is_downstream=False):
|
||||
enterprise_downstream_step(edition=edition),
|
||||
build_backend_step(edition=edition, ver_mode=ver_mode, is_downstream=is_downstream),
|
||||
build_frontend_step(edition=edition, ver_mode=ver_mode, is_downstream=is_downstream),
|
||||
build_frontend_package_step(edition=edition, ver_mode=ver_mode, is_downstream=is_downstream),
|
||||
build_plugins_step(edition=edition, sign=True),
|
||||
validate_scuemata_step(),
|
||||
ensure_cuetsified_step(),
|
||||
@@ -106,7 +112,6 @@ def get_steps(edition, is_downstream=False):
|
||||
store_storybook_step(edition=edition, ver_mode=ver_mode),
|
||||
test_a11y_frontend_step(ver_mode=ver_mode, edition=edition),
|
||||
frontend_metrics_step(edition=edition),
|
||||
build_frontend_docs_step(edition=edition),
|
||||
copy_packages_for_docker_step(),
|
||||
build_docker_images_step(edition=edition, ver_mode=ver_mode, publish=False),
|
||||
build_docker_images_step(edition=edition, ver_mode=ver_mode, ubuntu=True, publish=False),
|
||||
@@ -155,6 +160,7 @@ def main_pipelines(edition):
|
||||
integration_test_steps.append(benchmark_ldap_step())
|
||||
|
||||
pipelines = [
|
||||
docs_pipelines(edition, ver_mode, trigger),
|
||||
pipeline(
|
||||
name='main-test', edition=edition, trigger=trigger, services=[],
|
||||
steps=[download_grabpl_step()] + initialize_step(edition, platform='linux', ver_mode=ver_mode) + test_steps,
|
||||
|
||||
@@ -9,6 +9,7 @@ load(
|
||||
'shellcheck_step',
|
||||
'build_backend_step',
|
||||
'build_frontend_step',
|
||||
'build_frontend_package_step',
|
||||
'build_plugins_step',
|
||||
'test_backend_step',
|
||||
'test_backend_integration_step',
|
||||
@@ -42,6 +43,12 @@ load(
|
||||
'pipeline',
|
||||
)
|
||||
|
||||
load(
|
||||
'scripts/drone/pipelines/docs.star',
|
||||
'docs_pipelines',
|
||||
'trigger_docs',
|
||||
)
|
||||
|
||||
ver_mode = 'pr'
|
||||
|
||||
def pr_pipelines(edition):
|
||||
@@ -62,6 +69,7 @@ def pr_pipelines(edition):
|
||||
build_steps = [
|
||||
build_backend_step(edition=edition, ver_mode=ver_mode, variants=variants),
|
||||
build_frontend_step(edition=edition, ver_mode=ver_mode),
|
||||
build_frontend_package_step(edition=edition, ver_mode=ver_mode),
|
||||
build_plugins_step(edition=edition),
|
||||
validate_scuemata_step(),
|
||||
ensure_cuetsified_step(),
|
||||
@@ -129,5 +137,5 @@ def pr_pipelines(edition):
|
||||
name='pr-integration-tests', edition=edition, trigger=trigger, services=services,
|
||||
steps=[download_grabpl_step()] + initialize_step(edition, platform='linux', ver_mode=ver_mode) + integration_test_steps,
|
||||
volumes=volumes,
|
||||
),
|
||||
), docs_pipelines(edition, ver_mode, trigger_docs())
|
||||
]
|
||||
|
||||
@@ -15,6 +15,7 @@ load(
|
||||
'test_frontend_step',
|
||||
'build_backend_step',
|
||||
'build_frontend_step',
|
||||
'build_frontend_package_step',
|
||||
'build_plugins_step',
|
||||
'package_step',
|
||||
'grafana_server_step',
|
||||
@@ -175,6 +176,7 @@ def get_steps(edition, ver_mode):
|
||||
build_steps = [
|
||||
build_backend_step(edition=edition, ver_mode=ver_mode),
|
||||
build_frontend_step(edition=edition, ver_mode=ver_mode),
|
||||
build_frontend_package_step(edition=edition, ver_mode=ver_mode),
|
||||
build_plugins_step(edition=edition, sign=True),
|
||||
validate_scuemata_step(),
|
||||
ensure_cuetsified_step(),
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
load('scripts/drone/vault.star', 'from_secret', 'github_token', 'pull_secret', 'drone_token', 'prerelease_bucket')
|
||||
|
||||
grabpl_version = 'v2.9.4'
|
||||
build_image = 'grafana/build-container:1.4.9'
|
||||
grabpl_version = 'v2.9.7'
|
||||
build_image = 'grafana/build-container:1.5.3'
|
||||
publish_image = 'grafana/grafana-ci-deploy:1.3.1'
|
||||
deploy_docker_image = 'us.gcr.io/kubernetes-dev/drone/plugins/deploy-image'
|
||||
alpine_image = 'alpine:3.15'
|
||||
@@ -240,6 +240,7 @@ def build_storybook_step(edition, ver_mode):
|
||||
'depends_on': [
|
||||
# Best to ensure that this step doesn't mess with what's getting built and packaged
|
||||
'build-frontend',
|
||||
'build-frontend-packages',
|
||||
],
|
||||
'environment': {
|
||||
'NODE_OPTIONS': '--max_old_space_size=4096',
|
||||
@@ -381,13 +382,43 @@ def build_frontend_step(edition, ver_mode, is_downstream=False):
|
||||
'commands': cmds,
|
||||
}
|
||||
|
||||
def build_frontend_package_step(edition, ver_mode, is_downstream=False):
|
||||
if not is_downstream:
|
||||
build_no = '${DRONE_BUILD_NUMBER}'
|
||||
else:
|
||||
build_no = '$${SOURCE_BUILD_NUMBER}'
|
||||
|
||||
# TODO: Use percentage for num jobs
|
||||
if ver_mode == 'release':
|
||||
cmds = [
|
||||
'./bin/grabpl build-frontend-packages --jobs 8 --github-token $${GITHUB_TOKEN} ' + \
|
||||
'--edition {} --no-pull-enterprise ${{DRONE_TAG}}'.format(edition),
|
||||
]
|
||||
else:
|
||||
cmds = [
|
||||
'./bin/grabpl build-frontend-packages --jobs 8 --edition {} '.format(edition) + \
|
||||
'--build-id {} --no-pull-enterprise'.format(build_no),
|
||||
]
|
||||
|
||||
return {
|
||||
'name': 'build-frontend-packages',
|
||||
'image': build_image,
|
||||
'depends_on': [
|
||||
'initialize',
|
||||
],
|
||||
'environment': {
|
||||
'NODE_OPTIONS': '--max_old_space_size=8192',
|
||||
},
|
||||
'commands': cmds,
|
||||
}
|
||||
|
||||
|
||||
def build_frontend_docs_step(edition):
|
||||
return {
|
||||
'name': 'build-frontend-docs',
|
||||
'image': build_image,
|
||||
'depends_on': [
|
||||
'build-frontend'
|
||||
'build-frontend-packages'
|
||||
],
|
||||
'commands': [
|
||||
'./scripts/ci-reference-docs-lint.sh ci',
|
||||
@@ -563,6 +594,7 @@ def package_step(edition, ver_mode, include_enterprise2=False, variants=None, is
|
||||
'build-plugins',
|
||||
'build-backend',
|
||||
'build-frontend',
|
||||
'build-frontend-packages',
|
||||
]
|
||||
if include_enterprise2:
|
||||
sfx = '-enterprise2'
|
||||
@@ -638,6 +670,7 @@ def grafana_server_step(edition, port=3001):
|
||||
'build-plugins',
|
||||
'build-backend',
|
||||
'build-frontend',
|
||||
'build-frontend-packages',
|
||||
],
|
||||
'environment': environment,
|
||||
'commands': [
|
||||
|
||||
Reference in New Issue
Block a user