summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2023-04-01 07:19:16 +0300
committerAndrew Dolgov <[email protected]>2023-04-01 08:58:54 +0300
commit066b9a29d7cedc3c655e7ac8dedf41d8a2f6ff3e (patch)
treef3e3aeec9d260b9b69a5ba604d7cfbd7f6e07641 /.gitlab-ci.yml
parent269c0f53b890fc196775bb66e73db7c3a00bfd06 (diff)
WIP: gitlab-ci
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml94
1 files changed, 94 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 000000000..562eb776d
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,94 @@
+stages:
+ - lint
+ - build
+
+.build-master:
+ image:
+ name: ${CI_DOCKER_IMAGE}
+ stage: build
+ rules:
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+ before_script:
+ - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
+ - docker login -u ${DOCKER_HUB_USER} -p ${DOCKER_HUB_TOKEN}
+
+ - docker run --privileged --rm registry.fakecake.org/docker.io/tonistiigi/binfmt --install all
+ - docker buildx create --name mp-builder --driver docker-container --bootstrap --use
+
+ script:
+ - BUILD_TIMESTAMP=$(date -d $(echo ${CI_COMMIT_TIMESTAMP} | cut -b 1-10) +%y.%m)
+
+ - docker buildx build
+ --push
+ --platform linux/amd64,linux/arm64,linux/arm/v7
+ --tag ${CI_REGISTRY}/cthulhoo/${CI_JOB_NAME}:${BUILD_TIMESTAMP}-${CI_COMMIT_SHORT_SHA}
+ --tag ${CI_REGISTRY}/cthulhoo/${CI_JOB_NAME}:latest
+ --tag cthulhoo/${CI_JOB_NAME}:${BUILD_TIMESTAMP}-${CI_COMMIT_SHORT_SHA}
+ --tag cthulhoo/${CI_JOB_NAME}:latest
+ --build-context app-src=.
+ --cache-from type=registry,ref=${CI_REGISTRY}/cthulhoo/${CI_JOB_NAME}:latest
+ --cache-to type=inline
+ ${BUILD_CONTEXT}
+
+# .build-branch:
+# image:
+# name: ${CI_KANIKO_IMAGE}
+# entrypoint: [""] # kaniko doesn't have /bin/sh
+# stage: build
+# rules:
+# - if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
+# script:
+# - /kaniko/executor
+# --context "${BUILD_CONTEXT}"
+# --dockerfile "${DOCKER_DIR}/Dockerfile"
+# --destination "${CI_REGISTRY}/cthulhoo/${NAME}:${CI_COMMIT_BRANCH}-latest"
+# --destination "${CI_REGISTRY}/cthulhoo/${NAME}:${CI_COMMIT_BRANCH}-${CI_COMMIT_SHORT_SHA}"
+# --no-push
+
+phpunit:
+ image:
+ name: ${CI_DOCKER_IMAGE}
+ stage: lint
+ rules:
+ - if: $CI_COMMIT_BRANCH
+ changes:
+ - '**/*.php'
+ - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
+ script:
+ - php81 ./vendor/bin/phpunit
+
+eslint:
+ image:
+ name: ${CI_DOCKER_IMAGE}
+ stage: lint
+ rules:
+ - if: $CI_COMMIT_BRANCH
+ changes:
+ - '**/*.js'
+ - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
+ script:
+ - npm install
+ - npx eslint js plugins
+
+phpstan:
+ image:
+ name: ${CI_DOCKER_IMAGE}
+ stage: lint
+ rules:
+ - if: $CI_COMMIT_BRANCH
+ changes:
+ - '**/*.php'
+ - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
+ script:
+ - php81 -d memory_limit=-1 ./vendor/bin/phpstan --memory-limit=2G
+
+ttrss-web-nginx:
+ extends: .build-master
+ variables:
+ BUILD_CONTEXT: ${CI_PROJECT_DIR}/.docker/web-nginx
+
+ttrss-fpm-pgsql-static:
+ extends: .build-master
+ variables:
+ BUILD_CONTEXT: ${CI_PROJECT_DIR}/.docker/app
+