diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..ab3711c2eb16abb6ac77049d0665d44ac197fa19 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,57 @@ +stages: + - build + - package + - release + - deploy + +build-job: + image: python:slim + stage: build + rules: + - if: '$CI_COMMIT_BRANCH' + script: + - mkdir -p /usr/share/man/man1 # Because of https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 + - apt-get update && apt-get install -y plantuml graphviz + - pip install -r requirements.txt + - pelican content -s publishconf.py -e OUTPUT_PATH=public/ + artifacts: + paths: + - public/ + name: build + expire_in: 7 days +package-job: + stage: package + tags: [redshift] # Used to prevent runner 1000i100 from picking up this stage + image: curlimages/curl:latest + script: + - PACKAGE_VERSION="$(date +%Y.%m).${CI_PIPELINE_IID}" + - PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/${PACKAGE_VERSION}" + - echo 'Creating generic package' + - cd public/ + - tar cvf $HOME/website.tar * + - ls -al + - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file $HOME/website.tar ${PACKAGE_REGISTRY_URL}/website.tar' + rules: + - if: '$CI_COMMIT_BRANCH == "master"' +release-job: + stage: release + tags: [redshift] # Used to prevent runner 1000i100 from picking up this stage + image: registry.gitlab.com/gitlab-org/release-cli:latest + rules: + - if: '$CI_COMMIT_BRANCH == "master"' + script: + - PACKAGE_VERSION="$(date +%Y.%m).${CI_PIPELINE_IID}" + - PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/${PACKAGE_VERSION}" + - echo 'Creating release' + - release-cli create --name "$PACKAGE_VERSION" --tag-name $PACKAGE_VERSION --assets-link "{\"name\":\"wesbite.tar\",\"url\":\"$PACKAGE_REGISTRY_URL/website.tar\"}" + +pages: + stage: deploy + tags: [redshift] + rules: + - if: '$CI_COMMIT_BRANCH == "master"' + script: + - echo "Publishing to Gitlab pages" + artifacts: + paths: + - public/ \ No newline at end of file diff --git a/publishconf.py b/publishconf.py index 15325651ddca026996ceeddceb612dda1650310a..aa1c2a6573aaf47cf401a1bb9999e3725e55309e 100644 --- a/publishconf.py +++ b/publishconf.py @@ -1,5 +1,8 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # +import sys +sys.path.append('.') + from pelicanconf import * SITEURL = u'https://duniter.org/en'