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"
230234runs:
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"
294298runs:
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""
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
11621156def 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""
11681165 )
11691166 docker_pulls_badge = (
1170- f""
1167+ f""
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""
2006- docker_pulls_badge = (
2007- f""
2008- )
2008+ docker_pulls_badge = f""
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-
35293509def 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