Files
grafana/scripts/drone/pipelines/swagger_gen.star
Kevin Minehart 2400483d6c CI: Add github app token generation in pipelines that use GITHUB_TOKEN (#96646)
* Add github app token generation in pipelines that use GITHUB_TOKEN

* ci?

* clone gh repo using x-access-token user

* address linting issues

* use mounted volume for exporting token

* remove unused github_token env var swagger gen step

* replace pat on release_pr pipepline

* cleanup GH PAT references

* linting

* Update scripts/drone/steps/lib.star

* make drone

---------

Co-authored-by: Matheus Macabu <macabu.matheus@gmail.com>
2024-11-21 17:08:02 +02:00

59 lines
1.6 KiB
Plaintext

"""
This module returns all pipelines used in OpenAPI specification generation of Grafana HTTP APIs
"""
load(
"scripts/drone/steps/github.star",
"github_app_generate_token_step",
"github_app_pipeline_volumes",
)
load(
"scripts/drone/steps/lib.star",
"enterprise_setup_step",
)
load(
"scripts/drone/utils/images.star",
"images",
)
load(
"scripts/drone/utils/utils.star",
"pipeline",
)
def swagger_gen_step(ver_mode):
if ver_mode != "pr":
return None
return {
"name": "swagger-gen",
"image": images["go"],
"commands": [
"apk add --update git make",
"make swagger-clean && make openapi3-gen",
"for f in public/api-merged.json public/openapi3.json; do git add $f; done",
'if [ -z "$(git diff --name-only --cached)" ]; then echo "Everything seems up to date!"; else git diff --cached && echo "Please ensure the branch is up-to-date, then regenerate the specification by running make swagger-clean && make openapi3-gen" && return 1; fi',
],
"depends_on": [
"clone-enterprise",
],
}
def swagger_gen(ver_mode, source = "${DRONE_SOURCE_BRANCH}"):
test_steps = [
github_app_generate_token_step(),
enterprise_setup_step(source = source, canFail = True),
swagger_gen_step(ver_mode = ver_mode),
]
p = pipeline(
name = "{}-swagger-gen".format(ver_mode),
trigger = {
"event": ["pull_request"],
},
services = [],
steps = test_steps,
volumes = github_app_pipeline_volumes(),
)
return p