summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml266
1 files changed, 0 insertions, 266 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
deleted file mode 100644
index b7cd4d44a..000000000
--- a/.gitlab-ci.yml
+++ /dev/null
@@ -1,266 +0,0 @@
-stages:
- - lint
- - build
- - push
- - test
- - publish
-
-variables:
- ESLINT_PATHS: js plugins
- REGISTRY_PROJECT: cthulhoo
- IMAGE_TAR_FPM: image-fpm.tar
- IMAGE_TAR_WEB: image-web.tar
-
-include:
- - project: 'ci/ci-templates'
- ref: master
- file: .ci-build-docker-kaniko.yml
- - project: 'ci/ci-templates'
- ref: master
- file: .ci-registry-push.yml
- - project: 'ci/ci-templates'
- ref: master
- file: .ci-lint-common.yml
- - project: 'ci/ci-templates'
- ref: master
- file: .ci-update-helm-imagetag.yml
-
-phpunit:
- extends: .phpunit
- variables:
- PHPUNIT_ARGS: --exclude integration --coverage-filter classes --coverage-filter include
-
-eslint:
- extends: .eslint
-
-phpstan:
- extends: .phpstan
-
-ttrss-fpm-pgsql-static:build:
- extends: .build-docker-kaniko-no-push
- variables:
- DOCKERFILE: ${CI_PROJECT_DIR}/.docker/app/Dockerfile
- IMAGE_TAR: ${IMAGE_TAR_FPM}
-
-ttrss-fpm-pgsql-static:push-commit-only-gitlab:
- extends: .crane-image-registry-push-commit-only-gitlab
- variables:
- IMAGE_TAR: ${IMAGE_TAR_FPM}
- needs:
- - job: ttrss-fpm-pgsql-static:build
-
-ttrss-web-nginx:build:
- extends: .build-docker-kaniko-no-push
- variables:
- DOCKERFILE: ${CI_PROJECT_DIR}/.docker/web-nginx/Dockerfile
- IMAGE_TAR: ${IMAGE_TAR_WEB}
-
-ttrss-web-nginx:push-commit-only-gitlab:
- extends: .crane-image-registry-push-commit-only-gitlab
- variables:
- IMAGE_TAR: ${IMAGE_TAR_WEB}
- needs:
- - job: ttrss-web-nginx:build
-
-phpdoc:build:
- image: ${PHP_IMAGE}
- stage: publish
- rules:
- - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- script:
- - php84 /phpDocumentor.phar -d classes -d include -t phpdoc --visibility=public
- artifacts:
- paths:
- - phpdoc
-
-phpdoc:publish:
- extends: .build-docker-kaniko
- stage: publish
- needs:
- - job: phpdoc:build
- rules:
- - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $REGISTRY_USER != null && $REGISTRY_PASSWORD != null
- variables:
- DOCKERFILE: ${CI_PROJECT_DIR}/.docker/phpdoc/Dockerfile
- NAME: ttrss-phpdoc
- VERSION: latest
-
-phpunit-integration:
- image: ${PHP_IMAGE}
- variables:
- POSTGRES_DB: postgres
- POSTGRES_USER: postgres
- POSTGRES_PASSWORD: password
- TTRSS_DB_HOST: db
- TTRSS_DB_USER: ${POSTGRES_USER}
- TTRSS_DB_NAME: ${POSTGRES_DB}
- TTRSS_DB_PASS: ${POSTGRES_PASSWORD}
- FF_NETWORK_PER_BUILD: "true"
- APP_WEB_ROOT: /builds/shared-root
- APP_INSTALL_BASE_DIR: ${APP_WEB_ROOT}
- APP_BASE: "/tt-rss"
- APP_FASTCGI_PASS: app:9000 # skip resolver
- AUTO_CREATE_USER: test
- AUTO_CREATE_USER_PASS: 'test'
- AUTO_CREATE_USER_ACCESS_LEVEL: '10'
- AUTO_CREATE_USER_ENABLE_API: 'true'
- APP_URL: http://web-nginx/tt-rss
- API_URL: ${APP_URL}/api/
- HEALTHCHECK_URL: ${APP_URL}/public.php?op=healthcheck
- __URLHELPER_ALLOW_LOOPBACK: 'true'
- services:
- - &svc_db
- name: registry.fakecake.org/docker.io/postgres:15-alpine
- alias: db
- - &svc_app
- name: ${CI_REGISTRY}/${CI_PROJECT_PATH}/ttrss-fpm-pgsql-static:${CI_COMMIT_SHORT_SHA}
- alias: app
- - &svc_web
- name: ${CI_REGISTRY}/${CI_PROJECT_PATH}/ttrss-web-nginx:${CI_COMMIT_SHORT_SHA}
- alias: web-nginx
- rules:
- - if: $CI_COMMIT_BRANCH
- needs:
- - job: ttrss-fpm-pgsql-static:push-commit-only-gitlab
- - job: ttrss-web-nginx:push-commit-only-gitlab
- before_script:
- # wait for everything to start
- - |
- for a in `seq 1 15`; do
- curl -fs ${HEALTHCHECK_URL} && break
- sleep 5
- done
- script:
- - cp tests/integration/feed.xml ${APP_WEB_ROOT}/${APP_BASE}/
- - php84 vendor/bin/phpunit --group integration --do-not-cache-result --log-junit phpunit-report.xml --coverage-cobertura phpunit-coverage.xml --coverage-text --colors=never
- artifacts:
- when: always
- reports:
- junit: phpunit-report.xml
- coverage_report:
- coverage_format: cobertura
- path: phpunit-coverage.xml
- coverage: '/^\s*Lines:\s*\d+.\d+\%/'
-
-phpunit-integration:root-location:
- variables:
- APP_WEB_ROOT: /builds/shared-root/tt-rss
- APP_INSTALL_BASE_DIR: /builds/shared-root
- APP_BASE: ""
- APP_URL: http://web-nginx
- extends: phpunit-integration
-
-selenium:
- extends: phpunit-integration
- image: ${SELENIUM_IMAGE}
- variables:
- SELENIUM_GRID_ENDPOINT: http://selenium:4444/wd/hub
- services:
- - *svc_db
- - *svc_app
- - *svc_web
- - name: registry.fakecake.org/docker.io/selenium/standalone-chrome:4.32.0-20250515
- alias: selenium
- script:
- - |
- for i in `seq 1 10`; do
- echo attempt $i...
- python3 tests/integration/selenium_test.py && break
- sleep 10
- done
- artifacts:
- when: always
- reports:
- junit: selenium-report.xml
-
-ttrss-fpm-pgsql-static:publish:
- stage: publish
- extends: .crane-image-registry-push-master
- variables:
- IMAGE_TAR: ${IMAGE_TAR_FPM}
- needs:
- - job: ttrss-fpm-pgsql-static:build
- - job: phpunit-integration
- - job: selenium
-
-ttrss-fpm-pgsql-static:publish-docker-hub:
- stage: publish
- extends: .crane-image-registry-push-master-docker-hub
- variables:
- IMAGE_TAR: ${IMAGE_TAR_FPM}
- needs:
- - job: ttrss-fpm-pgsql-static:build
- - job: phpunit-integration
- - job: selenium
-
-ttrss-fpm-pgsql-static:publish-gitlab:
- stage: publish
- extends: .crane-image-registry-push-master-gitlab
- variables:
- IMAGE_TAR: ${IMAGE_TAR_FPM}
- needs:
- - job: ttrss-fpm-pgsql-static:build
- - job: phpunit-integration
- - job: selenium
-
-ttrss-web-nginx:publish:
- stage: publish
- extends: .crane-image-registry-push-master
- variables:
- IMAGE_TAR: ${IMAGE_TAR_WEB}
- needs:
- - job: ttrss-web-nginx:build
- - job: phpunit-integration
- - job: selenium
-
-ttrss-web-nginx:publish-docker-hub:
- stage: publish
- extends: .crane-image-registry-push-master-docker-hub
- variables:
- IMAGE_TAR: ${IMAGE_TAR_WEB}
- needs:
- - job: ttrss-web-nginx:build
- - job: phpunit-integration
- - job: selenium
-
-ttrss-web-nginx:publish-gitlab:
- stage: publish
- extends: .crane-image-registry-push-master-gitlab
- variables:
- IMAGE_TAR: ${IMAGE_TAR_WEB}
- needs:
- - job: ttrss-web-nginx:build
- - job: phpunit-integration
- - job: selenium
-
-update-demo:
- stage: publish
- extends: .update-helm-imagetag
- variables:
- CHART_REPO: gitlab.fakecake.org/git/helm-charts/tt-rss.git
- CHART_VALUES: values-demo.yaml
- ACCESS_TOKEN: ${DEMO_HELM_TOKEN}
- rules:
- - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $DEMO_HELM_TOKEN != null
-
-update-prod:
- stage: publish
- extends: .update-helm-imagetag
- variables:
- CHART_REPO: gitlab.fakecake.org/git/helm-charts/tt-rss-prod.git
- CHART_VALUES: values-prod.yaml
- ACCESS_TOKEN: ${PROD_HELM_TOKEN}
- rules:
- - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $PROD_HELM_TOKEN != null
-
-# https://about.gitlab.com/blog/how-to-automatically-create-a-new-mr-on-gitlab-with-gitlab-ci/
-weblate-integration-auto-mr:
- image: ${INFRA_IMAGE}
- stage: publish
- rules:
- - if: $CI_COMMIT_BRANCH == "weblate-integration" && $AUTO_MR_TOKEN != null
- script:
- - HOST=${CI_PROJECT_URL} CI_PROJECT_ID=${CI_PROJECT_ID}
- CI_COMMIT_REF_NAME=${CI_COMMIT_REF_NAME}
- GITLAB_USER_ID=${GITLAB_USER_ID}
- PRIVATE_TOKEN=${AUTO_MR_TOKEN} ./utils/autoMergeRequest.sh