Слияние кода завершено, страница обновится автоматически
stages:
- test
- docker
- integration-test
- publish
default:
image: python:3.12
interruptible: true
before_script:
- export PATH=$HOME/.local/bin:$PATH
- apt-get update && apt-get install -y git-lfs pipx
.only:
only: &only_changes
changes:
- "*.py"
- "git_cdn/**/*"
- "poetry.*"
- "pyproject*"
- "Makefile*"
- "Dockerfile"
- "*.yml"
- ".*"
checks:
extends: .only
stage: test
variables:
WORKING_DIRECTORY: /tmp
script:
- make dev-no-check
- make check
parallel:
matrix:
- IMAGE :
- python:3.12
- python:3.13
build:
extends: .only
stage: test
variables:
WORKING_DIRECTORY: /tmp
script:
- python --version
- git --version
- git lfs --version
- git lfs install
- make dev
- make set-version
- make build
- make export
artifacts:
paths:
- dist/
- Dockerfile
- config.py
- requirements.txt
tests:
extends: .only
stage: test
variables:
WORKING_DIRECTORY: /tmp
script:
- git --version
- git lfs --version
- git lfs install
- git config --global uploadpack.allowfilter true
- make dev-no-check
- make test
parallel:
matrix:
- IMAGE :
- python:3.12
- python:3.13
# markdownlint:
# stage: test
# image: ruby
# before_script:
# - gem install gitlab-markup redcarpet
# script:
# - gitlab-markup README.md
coverage:
extends: .only
stage: test
variables:
WORKING_DIRECTORY: /tmp
script:
- git --version
- git lfs --version
- git lfs install
- git config --global uploadpack.allowfilter true
- make dev
- poetry run pip install coveralls
- make test-coverage
# - pipenv run coveralls
artifacts:
paths:
- coverage_html/
reports:
junit: testresults.xml
coverage: '/^TOTAL.*\s+(\d+\%)$/'
dockerbuild:
extends: .only
image: docker:20.10.12
stage: docker
variables:
GIT_STRATEGY: none
needs: [build]
dependencies: [build]
services:
- docker:20.10.12-dind
before_script: [] # remove default
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t $CI_REGISTRY/$CI_PROJECT_PATH:i-$CI_COMMIT_SHA-$CI_PIPELINE_ID .
- docker push $CI_REGISTRY/$CI_PROJECT_PATH:i-$CI_COMMIT_SHA-$CI_PIPELINE_ID
# test the docker image with the integration tests
integration_tests:
extends: .only
stage: integration-test
needs: [dockerbuild]
services:
- name: $CI_REGISTRY/$CI_PROJECT_PATH:i-$CI_COMMIT_SHA-$CI_PIPELINE_ID
alias: gitcdn
variables:
WORKING_DIRECTORY: /tmp
GITSERVER_UPSTREAM: https://gitlab.com/
UNDER_TEST_APP: http://gitcdn:8000
# fix me: send patch to gitlab-runner so that services can be linked together..
# right now, we can't test proxy support by runnering a simple squid proxy as a gitlabci service
# BUNDLE_PROXY: $BUNDLE_PROXY
# PROXY: $PROXY
script:
- make dev
- unset https_proxy
- until curl $UNDER_TEST_APP ; do sleep 1; done
- make integration-test
pages:
extends: .only
stage: publish
only:
<<: *only_changes
refs:
- master
artifacts:
paths:
- public
script:
- mkdir -p public/coverage
- mv -v coverage_html/* public/coverage
publish_docker:
extends: .only
image: docker:20.10.12
stage: publish
only:
<<: *only_changes
refs:
- master
- tags
services:
- docker:20.10.12-dind
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $CI_REGISTRY/$CI_PROJECT_PATH:i-$CI_COMMIT_SHA-$CI_PIPELINE_ID
- docker tag $CI_REGISTRY/$CI_PROJECT_PATH:i-$CI_COMMIT_SHA-$CI_PIPELINE_ID $CI_REGISTRY/$CI_PROJECT_PATH:latest
- docker tag $CI_REGISTRY/$CI_PROJECT_PATH:i-$CI_COMMIT_SHA-$CI_PIPELINE_ID $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_NAME
- docker push $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_NAME
- docker push $CI_REGISTRY/$CI_PROJECT_PATH:latest
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )