瀏覽代碼

Make CI more flexible

Arkadiusz Ryś 2 年之前
父節點
當前提交
c22b8473e4
共有 1 個文件被更改,包括 24 次插入14 次删除
  1. 24 14
      .gitlab-ci.yml

+ 24 - 14
.gitlab-ci.yml

@@ -1,4 +1,4 @@
-image: docker:20.10.22
+image: docker:23.0.5
 
 variables:
   DOCKER_DRIVER: overlay2
@@ -11,7 +11,7 @@ variables:
   DOCKER_LATEST: $CI_REGISTRY_IMAGE:latest
 
 services:
-  - docker:20.10.22-dind
+  - docker:23.0.5-dind
 
 stages:
   - build
@@ -32,8 +32,11 @@ build-upload:
     - pip install build twine flit
     - FLIT_INDEX_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi flit build
     - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python -m twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/*
-  only:
-    - tags
+  rules:
+    - if: $CI_COMMIT_TAG
+    - if: $CI_PIPELINE_SOURCE == "push" || $CI_COMMIT_BRANCH == "dev"
+      when: manual
+      allow_failure: true
 
 build-upload-pypi:
   image: python:3.11
@@ -45,21 +48,25 @@ build-upload-pypi:
     - pip install build twine flit
     - flit build
     - python -m twine upload dist/*
-  only:
-    - tags
+  rules:
+    - if: $CI_COMMIT_TAG
+    - if: $CI_PIPELINE_SOURCE == "push" || $CI_COMMIT_BRANCH == "dev"
+      when: manual
+      allow_failure: true
 
-build_docker:
+build-docker:
   stage: build
   script:
     - docker pull $DOCKER_BRANCH || true
     - docker build --cache-from $DOCKER_BRANCH -f ./Dockerfile --tag $DOCKER_BRANCH .
     - docker push $DOCKER_BRANCH
-  only:
-    refs:
-      - master
-      - tags
+  rules:
+    - if: $CI_COMMIT_TAG || $CI_COMMIT_BRANCH == "main"
+    - if: $CI_PIPELINE_SOURCE == "push" || $CI_COMMIT_BRANCH == "dev"
+      when: manual
+      allow_failure: true
 
-build_tagged_docker:
+build-tagged-docker:
   stage: build
   script:
     - docker pull $DOCKER_BRANCH || true
@@ -67,5 +74,8 @@ build_tagged_docker:
     - docker push $DOCKER_LATEST
     - docker tag $DOCKER_BRANCH $DOCKER_TAG
     - docker push $DOCKER_TAG
-  only:
-    - tags
+  rules:
+    - if: $CI_COMMIT_TAG
+    - if: $CI_PIPELINE_SOURCE == "push" || $CI_COMMIT_BRANCH == "dev"
+      when: manual
+      allow_failure: true