Skip to content

Commit 8cd89e8

Browse files
committed
Merge branch 'switch-pipeline-to-rules' into 'main'
chore: convert GitLab CI/CD pipeline to use rules See merge request ongresinc/stackgres!1648
2 parents 12adac2 + c077331 commit 8cd89e8

8 files changed

Lines changed: 1022 additions & 373 deletions

File tree

.gitlab-ci.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,11 @@ include:
3939
- local: .gitlab-ci/e2e-test.yml
4040
- local: .gitlab-ci/image-release.yml
4141
- local: .gitlab-ci/deploy.yml
42+
43+
workflow:
44+
rules:
45+
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
46+
- if: $CI_PIPELINE_SOURCE == 'push'
47+
- if: $CI_PIPELINE_SOURCE == 'schedule'
48+
- if: $CI_PIPELINE_SOURCE == 'trigger'
49+
- if: $CI_COMMIT_TAG

.gitlab-ci/build.yml

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,16 @@ build arm64:
6262
- stackgres-runner-v2
6363
- stackgres-maven-runner
6464
- linux-arm64
65-
only:
66-
variables:
67-
- $SKIP_ARM != "true" && $CI_COMMIT_TAG && $CI_COMMIT_TAG !~ /^latest-.*$/
68-
- $DO_ARM
65+
rules:
66+
- if: |
67+
( ( $CI_PIPELINE_SOURCE == 'merge_request_event'
68+
|| $CI_PIPELINE_SOURCE == 'push'
69+
|| $CI_PIPELINE_SOURCE == 'schedule'
70+
|| $CI_PIPELINE_SOURCE == 'trigger'
71+
|| $CI_COMMIT_TAG )
72+
&& (
73+
( $SKIP_ARM != "true" && $CI_COMMIT_TAG )
74+
|| $DO_ARM ) )
6975
7076
.build ui:
7177
image: $CI_REGISTRY/$SG_CI_PROJECT_PATH/$SG_CI_IMAGE_NAME
@@ -98,10 +104,16 @@ build ui arm64:
98104
tags:
99105
- stackgres-runner
100106
- linux-arm64
101-
only:
102-
variables:
103-
- $SKIP_ARM != "true" && $CI_COMMIT_TAG && $CI_COMMIT_TAG !~ /^latest-.*$/
104-
- $DO_ARM
107+
rules:
108+
- if: |
109+
( ( $CI_PIPELINE_SOURCE == 'merge_request_event'
110+
|| $CI_PIPELINE_SOURCE == 'push'
111+
|| $CI_PIPELINE_SOURCE == 'schedule'
112+
|| $CI_PIPELINE_SOURCE == 'trigger'
113+
|| $CI_COMMIT_TAG )
114+
&& (
115+
( $SKIP_ARM != "true" && $CI_COMMIT_TAG )
116+
|| $DO_ARM ) )
105117
106118
build documentation:
107119
image: $CI_REGISTRY/$SG_CI_PROJECT_PATH/$SG_CI_IMAGE_NAME
@@ -115,10 +127,10 @@ build documentation:
115127
[ "$DEBUG" != true ] || set -x
116128
export DOCUMENTATION_BASE_URL="https://stackgres.io/doc"
117129
export DOCUMENTATION_EXTRA_PATH=""
118-
if [ -z "$CI_COMMIT_TAG" ] || echo "$CI_COMMIT_TAG" | grep -q '^latest-.*$'
130+
if [ -z "$CI_COMMIT_TAG" ]
119131
then
120132
DOCUMENTATION_BASE_URL="https://ongresinc.gitlab.io/stackgres"
121-
if [ "${CI_COMMIT_REF_NAME%%-*}" != "main" ] && [ "${CI_COMMIT_REF_NAME%%-*}" != "current" ]
133+
if [ "${CI_COMMIT_REF_NAME%%-*}" != "main" ]
122134
then
123135
DOCUMENTATION_EXTRA_PATH="$CI_COMMIT_REF_NAME/"
124136
fi

.gitlab-ci/deploy.yml

Lines changed: 44 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,17 @@
5959
mv ~/.docker/gitlab.json ~/.docker/config.json
6060
done
6161
retry: 2
62-
only:
63-
variables:
64-
- $SKIP_DEPLOY != "true" && $CI_COMMIT_REF_NAME =~ /^main.*$/
65-
- $SKIP_DEPLOY != "true" && $CI_COMMIT_TAG && $CI_COMMIT_TAG !~ /^latest-.*$/
66-
- $DO_DEPLOY
62+
rules:
63+
- if: |
64+
( ( $CI_PIPELINE_SOURCE == 'merge_request_event'
65+
|| $CI_PIPELINE_SOURCE == 'push'
66+
|| $CI_PIPELINE_SOURCE == 'schedule'
67+
|| $CI_PIPELINE_SOURCE == 'trigger'
68+
|| $CI_COMMIT_TAG )
69+
&& (
70+
( $SKIP_DEPLOY != "true" && $CI_COMMIT_REF_NAME =~ /^main.*$/ )
71+
|| ( $SKIP_DEPLOY != "true" && $CI_COMMIT_TAG )
72+
|| $DO_DEPLOY ) )
6773
6874
.deploy jvm image:
6975
extends: .deploy image
@@ -102,10 +108,16 @@ deploy stream jvm image:
102108
variables:
103109
IMAGE_TAG_SUFFIX: "-release"
104110
IMAGE_PUSH_TAG_SUFFIX: ""
105-
only:
106-
variables:
107-
- $SKIP_DEPLOY != "true" && $SKIP_NATIVE != "true" && $CI_COMMIT_REF_NAME =~ /^main.*$/
108-
- $SKIP_DEPLOY != "true" && $SKIP_NATIVE != "true" && $CI_COMMIT_TAG && $CI_COMMIT_TAG !~ /^latest-.*$/
111+
rules:
112+
- if: |
113+
( ( $CI_PIPELINE_SOURCE == 'merge_request_event'
114+
|| $CI_PIPELINE_SOURCE == 'push'
115+
|| $CI_PIPELINE_SOURCE == 'schedule'
116+
|| $CI_PIPELINE_SOURCE == 'trigger'
117+
|| $CI_COMMIT_TAG )
118+
&& (
119+
( $SKIP_DEPLOY != "true" && $SKIP_NATIVE != "true" && $CI_COMMIT_REF_NAME =~ /^main.*$/ )
120+
|| ( $SKIP_DEPLOY != "true" && $SKIP_NATIVE != "true" && $CI_COMMIT_TAG ) ) )
109121
110122
deploy operator native image:
111123
extends: .deploy native image
@@ -204,12 +216,18 @@ deploy helm packages and templates:
204216
fi
205217
aws s3 sync stackgres-k8s/install/helm/target/public/ s3://$S3_BUCKET_NAME/
206218
aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_DISTRIBUTION_ID --paths '/*'
207-
only:
208-
variables:
209-
- $SKIP_DEPLOY != "true" && $CI_COMMIT_REF_NAME =~ /^main.*$/
210-
- $SKIP_DEPLOY != "true" && $CI_COMMIT_TAG && $CI_COMMIT_TAG !~ /^latest-.*$/
211-
- $DO_DEPLOY
212-
- $DO_HELM_DEPLOY
219+
rules:
220+
- if: |
221+
( ( $CI_PIPELINE_SOURCE == 'merge_request_event'
222+
|| $CI_PIPELINE_SOURCE == 'push'
223+
|| $CI_PIPELINE_SOURCE == 'schedule'
224+
|| $CI_PIPELINE_SOURCE == 'trigger'
225+
|| $CI_COMMIT_TAG )
226+
&& (
227+
( $SKIP_DEPLOY != "true" && $CI_COMMIT_REF_NAME =~ /^main.*$/ )
228+
|| ( $SKIP_DEPLOY != "true" && $CI_COMMIT_TAG )
229+
|| $DO_DEPLOY
230+
|| $DO_HELM_DEPLOY ) )
213231
214232
pages:
215233
stage: deploy
@@ -231,8 +249,14 @@ pages:
231249
paths:
232250
- public
233251
retry: 2
234-
only:
235-
variables:
236-
- $SKIP_DEPLOY != "true" && $CI_COMMIT_REF_NAME =~ /^main.*$/
237-
- $SKIP_DEPLOY != "true" && $CI_COMMIT_TAG && $CI_COMMIT_TAG !~ /^latest-.*$/
238-
- $DO_PAGES
252+
rules:
253+
- if: |
254+
( ( $CI_PIPELINE_SOURCE == 'merge_request_event'
255+
|| $CI_PIPELINE_SOURCE == 'push'
256+
|| $CI_PIPELINE_SOURCE == 'schedule'
257+
|| $CI_PIPELINE_SOURCE == 'trigger'
258+
|| $CI_COMMIT_TAG )
259+
&& (
260+
( $SKIP_DEPLOY != "true" && $CI_COMMIT_REF_NAME =~ /^main.*$/ )
261+
|| ( $SKIP_DEPLOY != "true" && $CI_COMMIT_TAG )
262+
|| $DO_PAGES ) )

0 commit comments

Comments
 (0)