Skip to content

Commit 1f7aed5

Browse files
committed
Merge remote-tracking branch 'origin/main' into features-checkmake-re-enable
2 parents e2ed271 + 3d0aae0 commit 1f7aed5

File tree

447 files changed

+6374
-6199
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

447 files changed

+6374
-6199
lines changed

.automation/build.py

Lines changed: 43 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,14 @@
4242
DEFAULT_DOCKERFILE_RUST_ARGS,
4343
DEFAULT_RELEASE,
4444
DEFAULT_REPORT_FOLDER_NAME,
45+
DOCKER_PACKAGES_ROOT_URL,
46+
GHCR_PACKAGES_ROOT_URL,
4547
ML_DOC_URL_BASE,
4648
ML_DOCKER_IMAGE,
4749
ML_DOCKER_IMAGE_LEGACY,
4850
ML_DOCKER_IMAGE_LEGACY_V5,
51+
ML_DOCKER_IMAGE_WITH_HOST,
52+
ML_DOCKER_NAME,
4953
ML_REPO,
5054
ML_REPO_URL,
5155
)
@@ -229,7 +233,7 @@ def generate_flavor(flavor, flavor_info):
229233
description: "0 if no source file has been updated, 1 if source files has been updated"
230234
runs:
231235
using: "docker"
232-
image: "docker://{ML_DOCKER_IMAGE}:{image_release}"
236+
image: "docker://{ML_DOCKER_IMAGE_WITH_HOST}:{image_release}"
233237
args:
234238
- "-v"
235239
- "/var/run/docker.sock:/var/run/docker.sock:rw"
@@ -293,7 +297,7 @@ def generate_flavor(flavor, flavor_info):
293297
description: "0 if no source file has been updated, 1 if source files has been updated"
294298
runs:
295299
using: "docker"
296-
image: "docker://{ML_DOCKER_IMAGE}-{flavor}:{image_release}"
300+
image: "docker://{ML_DOCKER_IMAGE_WITH_HOST}-{flavor}:{image_release}"
297301
args:
298302
- "-v"
299303
- "/var/run/docker.sock:/var/run/docker.sock:rw"
@@ -749,7 +753,7 @@ def generate_linter_dockerfiles():
749753
linters_md += "| Linter key | Docker image | Size |\n"
750754
linters_md += "| :----------| :----------- | :--: |\n"
751755
descriptor_files = megalinter.linter_factory.list_descriptor_files()
752-
gha_workflow_yml = [" linter:", " ["]
756+
active_linter_list_lower = []
753757
for descriptor_file in descriptor_files:
754758
descriptor_items = []
755759
with open(descriptor_file, "r", encoding="utf-8") as f:
@@ -807,36 +811,26 @@ def generate_linter_dockerfiles():
807811
build_dockerfile(
808812
dockerfile, descriptor_and_linter, requires_docker, "none", extra_lines
809813
)
810-
gha_workflow_yml += [f' "{linter_lower_name}",']
811-
docker_image = f"{ML_DOCKER_IMAGE}-only-{linter_lower_name}:{VERSION_V}"
814+
docker_image = (
815+
f"{ML_DOCKER_IMAGE_WITH_HOST}-only-{linter_lower_name}:{VERSION_V}"
816+
)
812817
docker_image_badge = (
813818
f"![Docker Image Size (tag)]({BASE_SHIELD_IMAGE_LINK}/"
814819
f"{ML_DOCKER_IMAGE}-only-{linter_lower_name}/{VERSION_V})"
815820
)
816821
linters_md += (
817822
f"| {linter.name} | {docker_image} | {docker_image_badge} |\n"
818823
)
824+
if not (hasattr(linter, "disabled") and linter.disabled is True):
825+
active_linter_list_lower += [linter_lower_name]
826+
827+
# Write linter_list_lower in .automation/generated/linters_matrix.json
828+
linters_matrix_file = f"{REPO_HOME}/.automation/generated/linters_matrix.json"
829+
with open(linters_matrix_file, "w", encoding="utf-8") as file:
830+
json.dump(active_linter_list_lower, file, indent=2, sort_keys=True)
831+
file.write("\n")
832+
logging.info(f"Updated {linters_matrix_file}")
819833

820-
# Update github action workflow
821-
gha_workflow_yml += [" ]"]
822-
replace_in_file(
823-
f"{REPO_HOME}/.github/workflows/deploy-DEV-linters.yml",
824-
"# linters-start",
825-
"# linters-end",
826-
"\n".join(gha_workflow_yml),
827-
)
828-
replace_in_file(
829-
f"{REPO_HOME}/.github/workflows/deploy-BETA-linters.yml",
830-
"# linters-start",
831-
"# linters-end",
832-
"\n".join(gha_workflow_yml),
833-
)
834-
replace_in_file(
835-
f"{REPO_HOME}/.github/workflows/deploy-RELEASE-linters.yml",
836-
"# linters-start",
837-
"# linters-end",
838-
"\n".join(gha_workflow_yml),
839-
)
840834
# Write MD file
841835
file = open(f"{REPO_HOME}/docs/standalone-linters.md", "w", encoding="utf-8")
842836
file.write(linters_md + "\n")
@@ -1161,13 +1155,16 @@ def generate_descriptor_documentation(descriptor):
11611155

11621156
def generate_flavor_documentation(flavor_id, flavor, linters_tables_md):
11631157
flavor_github_action = f"{ML_REPO}/flavors/{flavor_id}@{VERSION_V}"
1164-
flavor_docker_image = f"{ML_DOCKER_IMAGE}-{flavor_id}:{VERSION_V}"
1158+
flavor_docker_image = f"{ML_DOCKER_IMAGE_WITH_HOST}-{flavor_id}:{VERSION_V}"
1159+
flavor_docker_image_dockerhub = (
1160+
f"docker.io/{ML_DOCKER_IMAGE}-{flavor_id}:{VERSION_V}"
1161+
)
11651162
docker_image_badge = (
11661163
f"![Docker Image Size (tag)]({BASE_SHIELD_IMAGE_LINK}/"
11671164
f"{ML_DOCKER_IMAGE}-{flavor_id}/{VERSION_V})"
11681165
)
11691166
docker_pulls_badge = (
1170-
f"![Docker Pulls]({BASE_SHIELD_COUNT_LINK}/" f"{ML_DOCKER_IMAGE}-{flavor_id})"
1167+
f"![Docker Pulls]({BASE_SHIELD_COUNT_LINK}/{ML_DOCKER_IMAGE}-{flavor_id})"
11711168
)
11721169
flavor_doc_md = [
11731170
"---",
@@ -1187,7 +1184,12 @@ def generate_flavor_documentation(flavor_id, flavor, linters_tables_md):
11871184
"## Usage",
11881185
"",
11891186
f"- [GitHub Action]({MKDOCS_URL_ROOT}/installation/#github-action): **{flavor_github_action}**",
1190-
f"- Docker image: **{flavor_docker_image}**",
1187+
"",
1188+
"- Docker images:",
1189+
"",
1190+
f" - GitHub Packages: **{flavor_docker_image}**",
1191+
f" - Docker Hub: **{flavor_docker_image_dockerhub}**",
1192+
"",
11911193
f"- [mega-linter-runner]({MKDOCS_URL_ROOT}/mega-linter-runner/): `mega-linter-runner --flavor {flavor_id}`",
11921194
"",
11931195
"## Embedded linters",
@@ -2003,9 +2005,7 @@ def build_flavors_md_table(filter_linter_name=None, replace_link=False):
20032005
+ +len(linters_by_type["other"])
20042006
)
20052007
docker_image_badge = f"![Docker Image Size (tag)]({BASE_SHIELD_IMAGE_LINK}/{ML_DOCKER_IMAGE}/{VERSION_V})"
2006-
docker_pulls_badge = (
2007-
f"![Docker Pulls]({BASE_SHIELD_COUNT_LINK}/" f"{ML_DOCKER_IMAGE})"
2008-
)
2008+
docker_pulls_badge = f"![Docker Pulls]({BASE_SHIELD_COUNT_LINK}/{ML_DOCKER_IMAGE})"
20092009
md_line_all = (
20102010
f"| {icon_html} | [all]({MKDOCS_URL_ROOT}/supported-linters/) | "
20112011
f"Default MegaLinter Flavor | {str(linters_number)} | {docker_image_badge} {docker_pulls_badge} |"
@@ -2106,29 +2106,32 @@ def update_docker_pulls_counter():
21062106
now_str = datetime.now().replace(microsecond=0).isoformat()
21072107
for flavor_id in all_flavors_ids:
21082108
if flavor_id == "all":
2109-
docker_image_url = (
2110-
f"https://hub.docker.com/v2/repositories/{ML_DOCKER_IMAGE}"
2111-
)
2109+
ghcr_image_url = f"{GHCR_PACKAGES_ROOT_URL}/{ML_DOCKER_NAME}"
2110+
docker_image_url = f"{DOCKER_PACKAGES_ROOT_URL}/{ML_DOCKER_IMAGE}"
21122111
legacy_docker_image_url = (
2113-
f"https://hub.docker.com/v2/repositories/{ML_DOCKER_IMAGE_LEGACY}"
2112+
f"{DOCKER_PACKAGES_ROOT_URL}/{ML_DOCKER_IMAGE_LEGACY}"
21142113
)
21152114
legacy_v5_docker_image_url = (
2116-
f"https://hub.docker.com/v2/repositories/{ML_DOCKER_IMAGE_LEGACY_V5}"
2115+
f"{DOCKER_PACKAGES_ROOT_URL}/{ML_DOCKER_IMAGE_LEGACY_V5}"
21172116
)
21182117
else:
2118+
ghcr_image_url = f"{GHCR_PACKAGES_ROOT_URL}/{ML_DOCKER_NAME}-{flavor_id}"
21192119
docker_image_url = (
2120-
f"https://hub.docker.com/v2/repositories/{ML_DOCKER_IMAGE}-{flavor_id}"
2120+
f"{DOCKER_PACKAGES_ROOT_URL}/{ML_DOCKER_IMAGE}-{flavor_id}"
2121+
)
2122+
legacy_docker_image_url = (
2123+
f"{DOCKER_PACKAGES_ROOT_URL}/{ML_DOCKER_IMAGE_LEGACY}-{flavor_id}"
21212124
)
2122-
legacy_docker_image_url = f"https://hub.docker.com/v2/repositories/{ML_DOCKER_IMAGE_LEGACY}-{flavor_id}"
21232125
legacy_v5_docker_image_url = (
2124-
"https://hub.docker.com/v2/repositories/"
2126+
f"{DOCKER_PACKAGES_ROOT_URL}/"
21252127
+ f"{ML_DOCKER_IMAGE_LEGACY_V5}-{flavor_id}"
21262128
)
21272129

2130+
flavor_count_0 = perform_count_request(ghcr_image_url)
21282131
flavor_count_1 = perform_count_request(docker_image_url)
21292132
flavor_count_2 = perform_count_request(legacy_docker_image_url)
21302133
flavor_count_3 = perform_count_request(legacy_v5_docker_image_url)
2131-
flavor_count = flavor_count_1 + flavor_count_2 + flavor_count_3
2134+
flavor_count = flavor_count_0 + flavor_count_1 + flavor_count_2 + flavor_count_3
21322135
logging.info(f"- docker pulls for {flavor_id}: {flavor_count}")
21332136
total_count = total_count + flavor_count
21342137
flavor_stats = list(docker_stats.get(flavor_id, []))
@@ -3503,29 +3506,6 @@ def update_dependents_info():
35033506
os.system(" ".join(command))
35043507

35053508

3506-
def update_workflows_linters():
3507-
descriptors, _ = list_descriptors_for_build()
3508-
3509-
linters = ""
3510-
3511-
for descriptor in descriptors:
3512-
for linter in descriptor["linters"]:
3513-
if "disabled" in linter and linter["disabled"] is True:
3514-
continue
3515-
if "name" in linter:
3516-
name = linter["name"].lower()
3517-
else:
3518-
lang_lower = descriptor["descriptor_id"].lower()
3519-
linter_name_lower = linter["linter_name"].lower().replace("-", "_")
3520-
name = f"{lang_lower}_{linter_name_lower}"
3521-
3522-
linters += f' "{name}",\n'
3523-
3524-
update_workflow_linters(".github/workflows/deploy-DEV-linters.yml", linters)
3525-
update_workflow_linters(".github/workflows/deploy-BETA-linters.yml", linters)
3526-
update_workflow_linters(".github/workflows/deploy-RELEASE-linters.yml", linters)
3527-
3528-
35293509
def update_workflow_linters(file_path, linters):
35303510
with open(file_path, "r", encoding="utf-8") as f:
35313511
file_content = f.read()
@@ -3640,7 +3620,6 @@ def build_custom_flavor(dockerfile):
36403620
generate_all_flavors()
36413621
generate_linter_dockerfiles()
36423622
generate_linter_test_classes()
3643-
update_workflows_linters()
36443623
if UPDATE_DOC is True:
36453624
logging.info("Running documentation generators…")
36463625
# refresh_users_info() # deprecated since now we use github-dependents-info

0 commit comments

Comments
 (0)