Newer
Older
- pypi_publish
.junit_template: &junit_definition
artifacts:
reports:
junit: "junit*.xml"
- eossr-codemeta2zenodo --help
- eossr-codemeta2zenodo --input_codemeta_file ./codemeta.json
- cat .zenodo.json
only:
- branches
stage: test
image: python:slim
script:
- apt-get -y update
- pytest eossr/
--junitxml=junit_py37.xml
--color=yes
--verbose
--cov=eossr
--cov-report=xml
--cov-report=term
--capture=no
- apt update --yes && apt install --yes pandoc
- pip install -U -r docs/doc_requirements.txt
- sphinx-build docs _public
artifacts:
when: always
paths:
- junit_py37.xml
reports:
junit: junit_py37.xml
test_ci_eossr:
stage: test
trigger: escape2020/wp3/test_eossr
test_codemeta_ingestion:
stage: test
image: gitlab-registry.in2p3.fr/escape2020/wp3/eossr:latest
script:
- eossr-check-connection-zenodo --token $ZENODO_TOKEN --sandbox False -p $CI_PROJECT_DIR
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
- changes:
- codemeta.json
stage: build_containers
image: docker:19.03.12
services:
- docker:19.03.12-dind
before_script:
- cat /etc/os-release # "Alpine Linux v3.12"
- apk add --no-cache git
- export LAST_RELEASE=`git ls-remote --tags --refs --sort="v:refname" $CI_PROJECT_URL.git | tail -n1 | sed 's/.*\///'`
- echo $LAST_RELEASE
script:
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
- docker build -t $CI_REGISTRY_IMAGE:$LAST_RELEASE .
- docker push $CI_REGISTRY_IMAGE:$LAST_RELEASE
- docker tag $CI_REGISTRY_IMAGE:$LAST_RELEASE $CI_REGISTRY_IMAGE:latest
- docker push $CI_REGISTRY_IMAGE:latest
only:
- tags
build_docker_main:
stage: build_containers
image: docker:19.03.12
services:
- cat /etc/os-release # "Alpine Linux v3.12"
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
- docker build -t $CI_REGISTRY_IMAGE:dev .
- docker push $CI_REGISTRY_IMAGE:dev
image: gitlab-registry.in2p3.fr/escape2020/wp3/eossr:latest
before_script:
- eossr-check-connection-zenodo --token $ZENODO_TOKEN --sandbox False -p $CI_PROJECT_DIR
- eossr-upload-repository -t $ZENODO_TOKEN -i $CI_PROJECT_DIR --archive-name $CI_PROJECT_NAME.zip -id $ZENODO_RECORD_ID
stage: deploy_pages
image: python:slim
script:
- apt update --yes && apt install --yes pandoc pip git
- pip install --upgrade setuptools pip
- git fetch --all --tags
- git checkout $CI_COMMIT_REF_NAME
- pip install -U -r docs/doc_requirements.txt
- pip install -e .
- sphinx-multiversion docs public -D nbsphinx_allow_errors=1
- cd public
- cp -r $CI_COMMIT_REF_NAME/* .
- for t in `git tag`; do echo $t; sed -i -e "s~../$t/index.html~$t/index.html~" "index.html" ; done
- cd -
artifacts:
paths:
- public
only:
- master
pypi_publish:
stage: pypi_publish
image: python:3.8
before_script:
- apt-get update -y; apt-get install git -y;
- pip install --upgrade pip; pip install twine;
- export LAST_RELEASE=`git ls-remote --tags --refs --sort="v:refname" $CI_PROJECT_URL.git | tail -n1 | sed 's/.*\///'`
- echo $LAST_RELEASE
script:
- python setup.py sdist
- echo "upload to pypi registry"
- twine upload --repository-url https://upload.pypi.org/legacy/ dist/* -u __token__ -p ${PYPI_TOKEN}
- echo "upload to gitlab registry"
- python -m twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi/ --verbose -u gitlab-ci-token -p ${CI_JOB_TOKEN} dist/*
only:
- tags