diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 904a6cd139b880de12ed25d7d6f8998d4076f55a..facdb5751c18af134f69b3ea11a0c79b612e63f5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,97 +1,4 @@
-image: openjdk:11-jdk
-stages:
-  - build
-  - test
-  - deploy
-
-variables:
-  MAVEN_CLI_OPTS: "-s ci_settings.xml --batch-mode"
-  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dmaven.artifact.threads=10"
-  MAIN_BRANCH: "main"
-  RELEASE_BRANCH: "release"
-
-cache:
-  paths:
-    - .m2/repository/
-
-build:
-  stage: build
-  script:
-    - env
-    - ./mvnw $MAVEN_CLI_OPTS $MAVEN_OPTS package
-  tags:
-    - vips-java
-  rules:
-    - if: '$CI_PIPELINE_SOURCE != "trigger"'
-
-test:
-  stage: test
-  script:
-    - ./mvnw $MAVEN_CLI_OPTS $MAVEN_OPTS test
-  tags:
-    - vips-java
-  rules:
-    - if: '$CI_PIPELINE_SOURCE != "trigger"'
-
-# This job is triggered by the VIPSCommon pipeline, and builds the model with the given version of VIPSCommon
-test_after_vips_common_changes:
-  stage: test
-  script:
-    - echo $VERSION
-    - ./mvnw versions:use-dep-version -Dincludes=no.nibio.vips:VIPSCommon -DdepVersion=$VERSION -DforceVersion=true
-    - echo 'Build model with no.nibio.vips:VIPSCommon:$VERSION'
-    - ./mvnw $MAVEN_CLI_OPTS $MAVEN_OPTS package
-  tags:
-    - vips-java
-  rules:
-    - if: '$CI_PIPELINE_SOURCE == "trigger"'
-
-deploy-snapshot:
-  stage: deploy
-  script:
-    - export VERSION=$(./mvnw --batch-mode --no-transfer-progress --non-recursive help:evaluate -Dexpression=project.version | grep -v "\[.*")
-    - if ! [[ $VERSION =~ .*SNAPSHOT ]]; then exit 1; fi
-    - ./mvnw $MAVEN_CLI_OPTS $MAVEN_OPTS deploy -DskipTests
-  tags:
-    - vips-java
-  rules:
-    - if: '$CI_PIPELINE_SOURCE != "trigger" && $CI_COMMIT_REF_NAME == $MAIN_BRANCH'
-
-deploy-release:
-  stage: deploy
-  script:
-    # For debugging git interaction
-    #- export GIT_TRACING=2
-    #- export GIT_CURL_VERBOSE=1
-    - git config --global user.name "${GITLAB_USER_NAME}"
-    - git config --global user.email "${GITLAB_USER_EMAIL}"
-
-    # Use access token given by CI/CD variable ACCESS_TOKEN to authenticate
-    - export NEW_REPO_URL=https://root:$ACCESS_TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH.git
-    - git remote set-url --push origin $NEW_REPO_URL
-    - git fetch origin --prune --prune-tags
-
-    # Checkout release branch, set release version and deploy. Commit, tag and push.
-    - git checkout $RELEASE_BRANCH
-    - git status
-    - git reset --hard origin/$RELEASE_BRANCH
-    - ./mvnw $MAVEN_CLI_OPTS $MAVEN_OPTS validate -DremoveSnapshot
-    - ./mvnw $MAVEN_CLI_OPTS $MAVEN_OPTS deploy -DskipTests
-    - export RELEASE_VERSION=$(./mvnw --batch-mode --no-transfer-progress --non-recursive help:evaluate -Dexpression=project.version | grep -v "\[.*")
-    - export RELEASE_TAG="v${RELEASE_VERSION}"
-    - git add pom.xml
-    - git commit -m "[ci skip] Set release version ${RELEASE_VERSION}"
-    - git tag -a $RELEASE_TAG -m "Tag release ${RELEASE_TAG}"
-    - git push origin $RELEASE_TAG
-    - git push origin $RELEASE_BRANCH
-
-    # Checkout main branch, merge release branch. Push commit.
-    - git fetch
-    - git checkout $MAIN_BRANCH
-    - git reset --hard origin/$MAIN_BRANCH
-    - git merge -m "[ci skip] Merge ${RELEASE_BRANCH}" --no-ff $RELEASE_BRANCH
-    - git push origin $MAIN_BRANCH
-  tags:
-    - vips-java
-  rules:
-    - if: '$CI_PIPELINE_SOURCE != "trigger" && $CI_COMMIT_REF_NAME == $RELEASE_BRANCH'
+include:
+  - project: 'VIPS/vips-common-config'
+    file: '/gitlab-ci-vips-models.yml'
+    ref: main
\ No newline at end of file