diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 5c13bdb..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,75 +0,0 @@ -workflow: - rules: # disable tag pipelines and duplicate MR pipelines - - if: $CI_COMMIT_BRANCH - -variables: - MAIN_BRANCH_PATH: "." - EPHEMERAL_BRANCHES_PATH: preview # subpath to ephemeral branches content for preview - -pages: - stage: build - cache: - key: gitlab-pages - paths: [public] - before_script: - - sudo apk add git ikiwiki po4a perl-yaml-tiny tree - # CURRENT_CONTENT_PATH is defined in rules, different between main branch and ephemeral branches - - mkdir -p public/$CURRENT_CONTENT_PATH && ls public/$CURRENT_CONTENT_PATH/.. - - | # create ephermetal branched path if not existent - if [ ! -d "public/$EPHEMERAL_BRANCHES_PATH" ]; then - mkdir -p public/$EPHEMERAL_BRANCHES_PATH - fi - - | # avoid deleting main branch content when cache has been erased - if [ "$CI_COMMIT_BRANCH" != "$CI_DEFAULT_BRANCH" ] && [ ! -f public/$MAIN_BRANCH_PATH/index.html ]; then - echo -e "💥\e[91;1m Unable to retrieve $CI_DEFAULT_BRANCH generated files from cache ; please regenerate $CI_DEFAULT_BRANCH files first\e[0m" - exit 1 - fi - - rm -rf public/$CURRENT_CONTENT_PATH || true # remove last version of current branch - script: - - | # sed needs to be in its own section - sed -i "s|destdir.*|destdir: ./public/$CURRENT_CONTENT_PATH|" ikiwiki.setup - - ikiwiki --setup ikiwiki.setup - - | # create symbolic link to index.en.html if public/index.html does not exist - if [ ! -L "public/$CURRENT_CONTENT_PATH/index.html" ]; then - ln -s index.en.html public/$CURRENT_CONTENT_PATH/index.html - fi - - cd public/$EPHEMERAL_BRANCHES_PATH - - tree -d -H '.' -L 1 --noreport --charset utf-8 -T "Versions" -o index.html # generate a root HTML listing all previews for easier access - environment: - name: pages/$CI_COMMIT_BRANCH - action: start - url: $CI_PAGES_URL/$CURRENT_CONTENT_PATH - on_stop: pages-clean-preview - rules: - # 'main branch' is exposed at GitLab Pages root - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - variables: - CURRENT_CONTENT_PATH: $MAIN_BRANCH_PATH - # other (short-lived) branches generation are exposed in 'EPHEMERAL_BRANCHES_PATH/branch-name-sanitized' sub path - - variables: - CURRENT_CONTENT_PATH: $EPHEMERAL_BRANCHES_PATH/$CI_COMMIT_REF_SLUG - artifacts: - paths: [public] - expire_in: 1h - tags: - - knit - -pages-clean-preview: - stage: build - cache: - key: gitlab-pages - paths: [public] - variables: - GIT_STRATEGY: none # git files not available after branch deletion - FOLDER_TO_DELETE: $EPHEMERAL_BRANCHES_PATH/$CI_COMMIT_REF_SLUG # an indirection to allow arbitrary deletion when launching this job - script: - - rm -rf public/$FOLDER_TO_DELETE - environment: - name: pages/$CI_COMMIT_BRANCH - action: stop - rules: - - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH - when: manual - allow_failure: true - tags: - - knit