CI: Introduce lint-backend pipeline (#55476)

* Introduce lint-backend pipeline

* Use go image and install make

* Don't run lint pipeline on .drone.yml changes
This commit is contained in:
Dimitris Sotirakis
2022-09-21 14:05:19 +03:00
committed by GitHub
parent b25ea75bac
commit c18432971b
6 changed files with 172 additions and 43 deletions

View File

@@ -47,6 +47,11 @@ load(
'enterprise_downstream_pipeline',
)
load(
'scripts/drone/pipelines/lint_backend.star',
'lint_backend_pipeline',
)
load('scripts/drone/vault.star', 'from_secret')
@@ -84,6 +89,7 @@ def main_pipelines(edition):
docs_pipelines(edition, ver_mode, trigger_docs_main()),
test_frontend(trigger, ver_mode),
test_backend(trigger, ver_mode),
lint_backend_pipeline(trigger, ver_mode),
build_e2e(trigger, ver_mode, edition),
integration_tests(trigger, ver_mode, edition),
windows(trigger, edition, ver_mode),

View File

@@ -39,6 +39,11 @@ load(
'shellcheck_pipeline',
)
load(
'scripts/drone/pipelines/lint_backend.star',
'lint_backend_pipeline',
)
ver_mode = 'pr'
trigger = {
'event': [
@@ -59,6 +64,7 @@ def pr_pipelines(edition):
verify_drone(get_pr_trigger(include_paths=['scripts/drone/**', '.drone.yml', '.drone.star']), ver_mode),
test_frontend(get_pr_trigger(exclude_paths=['pkg/**', 'packaging/**', 'go.sum', 'go.mod']), ver_mode),
test_backend(get_pr_trigger(include_paths=['pkg/**', 'packaging/**', '.drone.yml', 'conf/**', 'go.sum', 'go.mod', 'public/app/plugins/**/plugin.json', 'devenv/**']), ver_mode),
lint_backend_pipeline(get_pr_trigger(include_paths=['pkg/**', 'packaging/**', 'conf/**', 'go.sum', 'go.mod', 'public/app/plugins/**/plugin.json', 'devenv/**']), ver_mode),
build_e2e(trigger, ver_mode, edition),
integration_tests(get_pr_trigger(include_paths=['pkg/**', 'packaging/**', '.drone.yml', 'conf/**', 'go.sum', 'go.mod', 'public/app/plugins/**/plugin.json']), ver_mode, edition),
docs_pipelines(edition, ver_mode, trigger_docs_pr()),

View File

@@ -0,0 +1,31 @@
load(
'scripts/drone/steps/lib.star',
'identify_runner_step',
'wire_install_step',
'lint_backend_step',
'lint_drone_step',
'compile_build_cmd',
)
load(
'scripts/drone/utils/utils.star',
'pipeline',
)
def lint_backend_pipeline(trigger, ver_mode):
wire_step = wire_install_step()
wire_step.update({ 'depends_on': [] })
init_steps = [
identify_runner_step(),
compile_build_cmd(),
wire_step,
]
test_steps = [
lint_backend_step(edition="oss"),
]
if ver_mode == 'main':
test_steps.extend([lint_drone_step()])
return pipeline(
name='{}-lint-backend'.format(ver_mode), edition="oss", trigger=trigger, services=[], steps=init_steps + test_steps,
)

View File

@@ -1,10 +1,7 @@
load(
'scripts/drone/steps/lib.star',
'identify_runner_step',
'download_grabpl_step',
'wire_install_step',
'lint_backend_step',
'lint_drone_step',
'test_backend_step',
'test_backend_integration_step',
'verify_gen_cue_step',
@@ -19,18 +16,14 @@ load(
def test_backend(trigger, ver_mode):
init_steps = [
identify_runner_step(),
download_grabpl_step(),
compile_build_cmd(),
verify_gen_cue_step(edition="oss"),
wire_install_step(),
]
test_steps = [
lint_backend_step(edition="oss"),
test_backend_step(edition="oss"),
test_backend_integration_step(edition="oss"),
]
if ver_mode == 'main':
test_steps.extend([lint_drone_step()])
return pipeline(
name='{}-test-backend'.format(ver_mode), edition="oss", trigger=trigger, services=[], steps=init_steps + test_steps,

View File

@@ -207,7 +207,7 @@ def enterprise_downstream_step(edition, ver_mode):
def lint_backend_step(edition):
return {
'name': 'lint-backend' + enterprise2_suffix(edition),
'image': build_image,
'image': go_image,
'environment': {
# We need CGO because of go-sqlite3
'CGO_ENABLED': '1',
@@ -216,6 +216,7 @@ def lint_backend_step(edition):
'wire-install',
],
'commands': [
'apt-get update && apt-get install make',
# Don't use Make since it will re-download the linters
'make lint-go',
],