Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 67 additions & 27 deletions engine/.gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
# Auto-cancel redundant pipelines when new commits are pushed
workflow:
auto_cancel:
on_new_commit: interruptible
rules:
- if: $CI_COMMIT_TAG
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

default:
image:
name: golang:1.24
pull_policy: if-not-present
interruptible: true # All jobs can be cancelled by default

stages:
- test
Expand All @@ -21,10 +31,12 @@ stages:
- engine/**/*

.only_dle_tag_release: &only_tag_release
interruptible: false # Never cancel release jobs
rules:
- if: $CI_COMMIT_TAG =~ /^v[0-9.]+$/

.only_dle_tag_rc: &only_tag_rc
interruptible: false # Never cancel RC release jobs
rules:
- if: $CI_COMMIT_TAG =~ /^v[0-9.]+[\-_]*[a-zA-Z]+[a-zA-Z0-9.\-_]*[a-zA-Z0-9]+$/

Expand Down Expand Up @@ -408,16 +420,11 @@ build-image-swagger-release:
- export CLEAN_TAG=$(echo ${CI_COMMIT_TAG#"v"})
- export TAGS="${DOCKER_IMAGE_NAME}:${CLEAN_TAG}"

.bash-test: &bash_test
# Base template for bash integration tests
.bash-test-base: &bash_test_base
stage: integration-test
variables:
IMAGE_TAG: "${CI_COMMIT_REF_SLUG}"
rules:
- if: '$CI_PROJECT_NAMESPACE != "postgres-ai"'
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- engine/**/*
artifacts:
paths:
- engine/bin
Expand All @@ -432,53 +439,86 @@ build-image-swagger-release:
tags:
- dle-test

bash-test-9-6:
<<: *bash_test
# MR pipelines: Only run PG 17 and PG 18 to reduce queue time
# (10 jobs competing for 2 runners was causing 35+ min queue times)
.bash-test-mr: &bash_test_mr
<<: *bash_test_base
rules:
- if: '$CI_PROJECT_NAMESPACE != "postgres-ai"'
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- engine/**/*

# Main branch: Run full test matrix for comprehensive coverage
.bash-test-main: &bash_test_main
<<: *bash_test_base
rules:
- if: '$CI_PROJECT_NAMESPACE != "postgres-ai"'
when: never
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
changes:
- engine/**/*

# MR jobs - only PG 17 and PG 18 (latest stable versions)
bash-test-17:
<<: *bash_test_mr
variables:
POSTGRES_VERSION: 17

bash-test-18:
<<: *bash_test_mr
variables:
POSTGRES_VERSION: 18

# Main branch jobs - full matrix (all PostgreSQL versions)
bash-test-main-9-6:
<<: *bash_test_main
variables:
POSTGRES_VERSION: "9.6"

bash-test-10:
<<: *bash_test
bash-test-main-10:
<<: *bash_test_main
variables:
POSTGRES_VERSION: 10

bash-test-11:
<<: *bash_test
bash-test-main-11:
<<: *bash_test_main
variables:
POSTGRES_VERSION: 11

bash-test-12:
<<: *bash_test
bash-test-main-12:
<<: *bash_test_main
variables:
POSTGRES_VERSION: 12

bash-test-13:
<<: *bash_test
bash-test-main-13:
<<: *bash_test_main
variables:
POSTGRES_VERSION: 13

bash-test-14:
<<: *bash_test
bash-test-main-14:
<<: *bash_test_main
variables:
POSTGRES_VERSION: 14

bash-test-15:
<<: *bash_test
bash-test-main-15:
<<: *bash_test_main
variables:
POSTGRES_VERSION: 15

bash-test-16:
<<: *bash_test
bash-test-main-16:
<<: *bash_test_main
variables:
POSTGRES_VERSION: 16

bash-test-17:
<<: *bash_test
bash-test-main-17:
<<: *bash_test_main
variables:
POSTGRES_VERSION: 17

bash-test-18:
<<: *bash_test
bash-test-main-18:
<<: *bash_test_main
variables:
POSTGRES_VERSION: 18

Expand Down
Loading