From e6818d5a37185975a5a441725ad94f8888640f5c Mon Sep 17 00:00:00 2001 From: Adrien Beudin Date: Mon, 2 Sep 2024 18:23:09 +0200 Subject: [PATCH 1/7] chore: update ci config --- .gitlab-ci.yml | 109 +++++++++++++++++-------------------------------- 1 file changed, 37 insertions(+), 72 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f356980f06..b0afc09dea 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,9 +3,10 @@ # To run this locally (requires `gitlab-runner`): # $ gitlab-runner exec docker -image: docker:latest +default: + image: docker:latest -.only-default: &only-default +.only-default: only: - master - merge_requests @@ -21,27 +22,26 @@ variables: # Lint -.lint_template: &lint_definition +.lint_definition: stage: lint variables: GIT_SUBMODULE_STRATEGY: none - <<: *only-default + extends: .only-default lint package license: - <<: *lint_definition - image: "docker:latest" + extends: .lint_definition script: - apk update && apk add bash - bash test/lint/package-licenses.sh lint config-files: - <<: *lint_definition + extends: .lint_definition before_script: - apk add --update --no-cache libxml2-utils script: test/lint/config-files lint buildroot: - <<: *lint_definition + extends: .lint_definition variables: GIT_SUBMODULE_STRATEGY: recursive image: python:3-alpine @@ -52,7 +52,7 @@ lint buildroot: script: test/lint/buildroot lint commits: - <<: *lint_definition + extends: .lint_definition image: node:18 before_script: - npm install -g @commitlint/cli@17.0.0 @commitlint/config-conventional@17.0.0 @commitlint/types@17.0.0 @commitlint/read@17.0.0 @commitlint/load@17.0.0 @commitlint/lint@17.0.0 @commitlint/format@17.0.0 @@ -60,7 +60,7 @@ lint commits: # Test tests configgen: - <<: *lint_definition + extends: .lint_definition stage: lint image: python:3.11-slim only: @@ -81,7 +81,7 @@ tests configgen: - python setup.py install tests emulationstation: - <<: *lint_definition + extends: .lint_definition stage: lint image: docker:latest tags: @@ -144,7 +144,7 @@ tests buildroot patches: done tests nvidia: - <<: *lint_definition + extends: .lint_definition stage: lint image: python:3.9-slim only: @@ -177,13 +177,13 @@ appimage-amd64: paths: - 'projects/frontend/*.AppImage*' expire_in: 1 week - -.build_template: &build_definition + +.build_definition: stage: build variables: ARCH: arch # to build (no default) - <<: *only-default + extends: .only-default before_script: - apk update && apk add git bash - source scripts/release/functions.sh @@ -252,60 +252,26 @@ appimage-amd64: - build -build x86_64: - <<: *build_definition - when: manual - variables: - ARCH: 'x86_64' -build rpi4_64: - <<: *build_definition - when: manual - variables: - ARCH: 'rpi4_64' -build odroidgo2: - <<: *build_definition +build: + extends: .build_definition when: manual - variables: - ARCH: 'odroidgo2' -build odroidxu4: - <<: *build_definition - when: manual - variables: - ARCH: 'odroidxu4' -build rpi1: - <<: *build_definition - when: manual - variables: - ARCH: 'rpi1' -build rpi3: - <<: *build_definition - when: manual - variables: - ARCH: 'rpi3' -build rpizero2legacy: - <<: *build_definition - when: manual - variables: - ARCH: 'rpizero2legacy' -build rpizero2: - <<: *build_definition - when: manual - variables: - ARCH: 'rpizero2' -build rg353x: - <<: *build_definition - when: manual - variables: - ARCH: 'rg353x' -build rpi5_64: - <<: *build_definition - when: manual - variables: - ARCH: 'rpi5_64' + parallel: + matrix: + - ARCH: + - 'x86_64' + - 'rpi4_64' + - 'odroidgo2' + - 'odroidxu4' + - 'rpi1' + - 'rpi3' + - 'rpizero2legacy' + - 'rpizero2' + - 'rg353x' + - 'rpi5_64' ### Release -.release_template: &release_definition +.release_definition: stage: release tags: - release @@ -340,7 +306,7 @@ build rpi5_64: fi release prod: - <<: *release_definition + extends: .release_definition only: refs: - tags @@ -355,7 +321,7 @@ release prod: url: https://www.recalbox.com/download/ release alpha: - <<: *release_definition + extends: .release_definition only: - tags when: manual @@ -366,7 +332,7 @@ release alpha: name: alpha/${CI_COMMIT_REF_SLUG} release patron: - <<: *release_definition + extends: .release_definition only: refs: - tags @@ -380,7 +346,7 @@ release patron: name: patron/${CI_COMMIT_REF_SLUG} release jamma: - <<: *release_definition + extends: .release_definition only: refs: - tags @@ -394,7 +360,7 @@ release jamma: name: jamma/${CI_COMMIT_REF_SLUG} release jamma-early: - <<: *release_definition + extends: .release_definition only: refs: - tags @@ -408,8 +374,7 @@ release jamma-early: name: jamma-early/${CI_COMMIT_REF_SLUG} release branch: - <<: *release_definition - <<: *only-default + extends: .release_definition when: manual only: - merge_requests -- GitLab From 90a90e7d8c98c2244e04fe9ede535f81476c50da Mon Sep 17 00:00:00 2001 From: Adrien Beudin Date: Mon, 2 Sep 2024 21:14:56 +0200 Subject: [PATCH 2/7] chore: use rules 1 --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b0afc09dea..b63165e9b4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,10 +7,10 @@ default: image: docker:latest .only-default: - only: - - master - - merge_requests - - tags + rules: + - if: '$CI_COMMIT_REF_NAME == "master"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + - if: $CI_COMMIT_TAG stages: - lint -- GitLab From 9409d7d82355aa7bc65640783a73a85eaf67b661 Mon Sep 17 00:00:00 2001 From: Adrien Beudin Date: Mon, 2 Sep 2024 21:35:09 +0200 Subject: [PATCH 3/7] chore: use rules 1 --- .gitlab-ci.yml | 106 ++++++++++++++++++++++--------------------------- 1 file changed, 47 insertions(+), 59 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b63165e9b4..292b45a76e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -63,13 +63,10 @@ tests configgen: extends: .lint_definition stage: lint image: python:3.11-slim - only: - refs: - - master - - merge_requests - - tags - changes: - - projects/configgen/**/* + rules: + - !reference [.only-default, rules] + changes: + - projects/configgen/**/* script: - apt update && apt -y install libevdev2 - cd projects/configgen @@ -88,13 +85,10 @@ tests emulationstation: - lintstage services: - docker:dind - only: - refs: - - master - - merge_requests - - tags - changes: - - projects/frontend/**/* + rules: + - !reference [.only-default, rules] + changes: + - projects/frontend/**/* script: - cd projects/frontend - docker build . @@ -108,12 +102,11 @@ tests buildroot patches: GIT_SUBMODULE_STRATEGY: recursive tags: - lintstage - only: - refs: - - merge_requests - changes: - - package/*/*.patch - - board/recalbox/patches/*/*.patch + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + changes: + - package/*/*.patch + - board/recalbox/patches/*/*.patch before_script: - apk update && apk add git script: @@ -147,13 +140,10 @@ tests nvidia: extends: .lint_definition stage: lint image: python:3.9-slim - only: - refs: - - master - - merge_requests - - tags - changes: - - projects/recalbox-hardware/videocard/**/* + rules: + - !reference [.only-default, rules] + changes: + - projects/recalbox-hardware/videocard/**/* script: - cd projects/recalbox-hardware/videocard - echo "Installing dependencies" @@ -273,8 +263,8 @@ build: .release_definition: stage: release - tags: - - release + rules: + - if: '$CI_COMMIT_TAG' variables: DEPLOY_TYPE: type of the deployment (prod, review) BUCKET: Bucket to deploy to @@ -307,12 +297,13 @@ build: release prod: extends: .release_definition - only: - refs: - - tags - variables: - - $CI_COMMIT_TAG !~ /alpha/i && $CI_COMMIT_TAG !~ /recalboxrgbdual/i && $CI_COMMIT_TAG !~ /patron/i - when: manual + rules: + - if: '$CI_COMMIT_TAG' + variables: + $CI_COMMIT_TAG !~ /alpha/i + $CI_COMMIT_TAG !~ /recalboxrgbdual/i + $CI_COMMIT_TAG !~ /patron/i + when: manual variables: DEPLOY_TYPE: prod BUCKET: recalbox-archive-stable @@ -322,9 +313,9 @@ release prod: release alpha: extends: .release_definition - only: - - tags - when: manual + rules: + - if: '$CI_COMMIT_TAG' + when: manual variables: DEPLOY_TYPE: review BUCKET: recalbox-archive-alpha @@ -333,12 +324,11 @@ release alpha: release patron: extends: .release_definition - only: - refs: - - tags - variables: - - $CI_COMMIT_TAG =~ /patron/i - when: manual + rules: + - if: '$CI_COMMIT_TAG' + variables: + CI_COMMIT_TAG =~ /patron/i + when: manual variables: DEPLOY_TYPE: review BUCKET: recalbox-archive-patron @@ -347,12 +337,11 @@ release patron: release jamma: extends: .release_definition - only: - refs: - - tags - variables: - - $CI_COMMIT_TAG =~ /jamma/i - when: manual + rules: + - if: '$CI_COMMIT_TAG' + variables: + $CI_COMMIT_TAG =~ /jamma/i + when: manual variables: DEPLOY_TYPE: review BUCKET: recalbox-archive-jamma @@ -361,12 +350,11 @@ release jamma: release jamma-early: extends: .release_definition - only: - refs: - - tags - variables: - - $CI_COMMIT_TAG =~ /jamma/i - when: manual + rules: + - if: '$CI_COMMIT_TAG' + variables: + $CI_COMMIT_TAG =~ /jamma/i + when: manual variables: DEPLOY_TYPE: review BUCKET: recalbox-archive-jamma-early @@ -375,9 +363,9 @@ release jamma-early: release branch: extends: .release_definition - when: manual - only: - - merge_requests + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + when: manual variables: DEPLOY_TYPE: review BUCKET: recalbox-archive-branch -- GitLab From 8b9a1038ee6a603ed414d05471137c8804a5dc4f Mon Sep 17 00:00:00 2001 From: Adrien Beudin Date: Mon, 2 Sep 2024 21:38:30 +0200 Subject: [PATCH 4/7] chore: use rules 1 --- .gitlab-ci.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 292b45a76e..d71978d45c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,9 +8,7 @@ default: .only-default: rules: - - if: '$CI_COMMIT_REF_NAME == "master"' - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - - if: $CI_COMMIT_TAG + - if: '$CI_COMMIT_REF_NAME == "master" || $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_TAG' stages: - lint @@ -64,7 +62,7 @@ tests configgen: stage: lint image: python:3.11-slim rules: - - !reference [.only-default, rules] + - if: '$CI_COMMIT_REF_NAME == "master" || $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_TAG' changes: - projects/configgen/**/* script: -- GitLab From c4ad2bbe18722cffed4a441cc5fc2026721dd329 Mon Sep 17 00:00:00 2001 From: Adrien Beudin Date: Mon, 2 Sep 2024 21:40:07 +0200 Subject: [PATCH 5/7] chore: use rules 1 --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d71978d45c..02d5962534 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -84,7 +84,7 @@ tests emulationstation: services: - docker:dind rules: - - !reference [.only-default, rules] + - if: '$CI_COMMIT_REF_NAME == "master" || $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_TAG' changes: - projects/frontend/**/* script: @@ -139,7 +139,7 @@ tests nvidia: stage: lint image: python:3.9-slim rules: - - !reference [.only-default, rules] + - if: '$CI_COMMIT_REF_NAME == "master" || $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_TAG' changes: - projects/recalbox-hardware/videocard/**/* script: -- GitLab From 20cc1f324dfe076f63dec28d731530b84bf54331 Mon Sep 17 00:00:00 2001 From: Adrien Beudin Date: Mon, 2 Sep 2024 21:47:22 +0200 Subject: [PATCH 6/7] chore: use rules 1 --- .gitlab-ci.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 02d5962534..c558c28034 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -298,9 +298,7 @@ release prod: rules: - if: '$CI_COMMIT_TAG' variables: - $CI_COMMIT_TAG !~ /alpha/i - $CI_COMMIT_TAG !~ /recalboxrgbdual/i - $CI_COMMIT_TAG !~ /patron/i + CI_COMMIT_TAG: '!~ /alpha/i || !~ /recalboxrgbdual/i || !~ /patron/i' when: manual variables: DEPLOY_TYPE: prod -- GitLab From 35390dc665a7d0e3e64cbda428d261263130b533 Mon Sep 17 00:00:00 2001 From: Adrien Beudin Date: Mon, 2 Sep 2024 21:50:21 +0200 Subject: [PATCH 7/7] chore: use rules 1 --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c558c28034..2e9f993642 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -298,7 +298,7 @@ release prod: rules: - if: '$CI_COMMIT_TAG' variables: - CI_COMMIT_TAG: '!~ /alpha/i || !~ /recalboxrgbdual/i || !~ /patron/i' + CI_COMMIT_TAG: '!/alpha|recalboxrgbdual|patron/i' when: manual variables: DEPLOY_TYPE: prod @@ -323,7 +323,7 @@ release patron: rules: - if: '$CI_COMMIT_TAG' variables: - CI_COMMIT_TAG =~ /patron/i + CI_COMMIT_TAG: '/patron/i' when: manual variables: DEPLOY_TYPE: review @@ -336,7 +336,7 @@ release jamma: rules: - if: '$CI_COMMIT_TAG' variables: - $CI_COMMIT_TAG =~ /jamma/i + CI_COMMIT_TAG: '/jamma/i' when: manual variables: DEPLOY_TYPE: review @@ -349,7 +349,7 @@ release jamma-early: rules: - if: '$CI_COMMIT_TAG' variables: - $CI_COMMIT_TAG =~ /jamma/i + CI_COMMIT_TAG: '/jamma/i' when: manual variables: DEPLOY_TYPE: review -- GitLab