=====Configuration=====
====.gitlab-ci.yml====
===Windows===
Pour appeler une commande nécessitant l'opérateur ''Call'' ''&'', il faut passer par le multiligne :
- |
& $Env:VARIABLE
=====Variables d'environnement=====
====CI_PIPELINE_SOURCE====
Les variables d'environnement ne sont pas les mêmes en fonction du pipeline source.
CI_PIPELINE_SOURCE=merge_request_event
CI_MERGE_REQUEST_TARGET_BRANCH_NAME=main
CI_MERGE_REQUEST_SOURCE_BRANCH_NAME=125-secure_ci
CI_COMMIT_BRANCH=
CI_PIPELINE_SOURCE=push
CI_COMMIT_BRANCH=125-secure_ci
CI_MERGE_REQUEST_TARGET_BRANCH_NAME=
CI_MERGE_REQUEST_SOURCE_BRANCH_NAME=
=====API=====
Ici, le token doit avec un accès "API".
====Admin====
===Supprimer tous les artefacts===
curl --request DELETE --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/projects/1/artifacts"
[[https://stackoverflow.com/questions/42512733/remove-artifacts-from-ci-manually|Remove artifacts from CI manually]] {{ :prog:gitlab:api:gitlab_ci_-_remove_artifacts_from_ci_manually_-_stack_overflow_11_19_2024_10_24_25_am_.html |Archive du 28/02/2017 le 19/11/2024}}
=====Python=====
Utiliser [[https://github.com/gitpython-developers/GitPython|GitPython]] et sa [[https://gitpython.readthedocs.io/en/stable/|documentation]].
gl = Gitlab(url=GITLAB_URL, private_token=GITLAB_TOKEN)
gl.auth()
project_docker_ci = gl.projects.get(PROJECT_DOCKERCI_ID)
pipeline_docker_ci = project_docker_ci.pipelines.create({"ref": REF_DOCKERCI_ID})
jobs_docker_ci = pipeline_docker_ci.jobs.list(get_all=True)
# Restart all jobs
for job in jobs_docker_ci:
real_job = project_docker_ci.jobs.get(job.id)
real_job.refresh()
print(f"Starting {real_job.name} with previous status {id.status}")
real_job.play()
Et pour le typage:
from gitlab.v4.objects import ProjectJob