558 lines
26 KiB
YAML
558 lines
26 KiB
YAML
---
|
|
|
|
variables:
|
|
MY_PROJECT_ID: "13001358"
|
|
|
|
|
|
include:
|
|
- project: nofusscomputing/projects/gitlab-ci
|
|
ref: development
|
|
file:
|
|
- .gitlab-ci_common.yaml
|
|
- template/automagic.gitlab-ci.yaml
|
|
|
|
Documentation.Lint:
|
|
rules:
|
|
- when: never
|
|
|
|
Documentation.Build:
|
|
rules:
|
|
- when: never
|
|
|
|
Website.Lint:
|
|
extends: .Lint_Markdown_Docs
|
|
variables:
|
|
MDLINT_PATHS: "pages/*.md pages/**/*.md pages/**/**/*.md pages/**/**/**/*.md pages/**/**/**/**/**/*.md #CHANGELOG.md !gitlab-ci !website-template"
|
|
|
|
|
|
Website.Build:
|
|
extends: .MKDocs_Build
|
|
needs: [ 'Website.Lint' ]
|
|
resource_group: build
|
|
|
|
|
|
Assemble.Website.Prepare:
|
|
# extends: .MKDocs_Build
|
|
stage: prepare
|
|
# image: python:3.7.5-buster
|
|
# turn mkdocs build template script section to a command template so that customizations can be added.
|
|
script:
|
|
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/source"
|
|
# - mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build"
|
|
- echo "fetch artifacts from child repo's"
|
|
- echo "copy static pages source to" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/source"
|
|
- echo "copy sub-repo source to (merge)" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/source"
|
|
- echo "mkdocs build source dir"
|
|
# - mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/full-site"
|
|
- mv "$CI_PROJECT_DIR/artifacts/build/Website.Build/build" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/"
|
|
#- ls -laR $CI_PROJECT_DIR
|
|
# remove ops placeholder index.html
|
|
|
|
# Project: Operations
|
|
- echo "[DEBUG] fetch operations docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/32419575/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output operations-artifacts.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/32419575/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip operations-artifacts.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/operations/index.html";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/operations" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
# Project: Gitlab-CI
|
|
- echo "[DEBUG] fetch gitlab-ci project docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/28543717/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output gitlab-ci-artifacts.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/28543717/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip gitlab-ci-artifacts.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/gitlab-ci";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/projects/gitlab-ci" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/gitlab-ci/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
# Project: ansible role, git_configuration
|
|
- echo "[DEBUG] fetch git_configuration project docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/45705596/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output git_configuration-artifacts.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/45705596/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip git_configuration-artifacts.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/roles/git_configuration";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/projects/ansible/roles/git_configuration" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/roles/git_configuration/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
# Project: Docker Mail Server
|
|
- echo "[DEBUG] fetch docker-mail project docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/33611657/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output docker-mail-artifacts.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/33611657/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip docker-mail-artifacts.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/docker-mail";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/projects/docker-mail" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/docker-mail/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
# Project: Ansible Execution Environment
|
|
- echo "[DEBUG] fetch execution_environment project docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/45741845/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output execution_environment-artifacts.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/45741845/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip execution_environment-artifacts.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/execution_environment";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/projects/ansible/execution_environment" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/execution_environment/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
# Project: NodeRED LDAP Self Service
|
|
- echo "[DEBUG] fetch nodered_ldap_self_service project docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/48321671/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output nodered_ldap_self_service-artifacts.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/48321671/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip nodered_ldap_self_service-artifacts.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ldap_self_service";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/projects/ldap_self_service" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ldap_self_service/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
# Project: docker GLPI
|
|
- echo "[DEBUG] fetch docker-glpi project docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/12928828/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output docker-glpi-artifacts.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/12928828/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip docker-glpi-artifacts.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/glpi";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/projects/glpi" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/glpi/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
|
|
# Project: kubernetes monitoring helm chart
|
|
- echo "[DEBUG] fetch kubernetes_monitoring project docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/50510268/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output kubernetes_monitoring.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/50510268/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip kubernetes_monitoring.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/kubernetes_monitoring";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/projects/kubernetes_monitoring" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/kubernetes_monitoring/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
|
|
# Project: Ansible Public Playbooks
|
|
- echo "[DEBUG] fetch Ansible Public Playbooks project docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/46364551/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output ansible_playbooks.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/46364551/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip ansible_playbooks.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/playbooks";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/projects/ansible/playbooks" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/playbooks/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
|
|
# Project: Ansible role common
|
|
- echo "[DEBUG] fetch Ansible common project docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/52226103/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output nfc_common.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/52226103/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip nfc_common.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/roles/common";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/projects/ansible/roles/common" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/roles/common/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
|
|
# Project: Ansible role firewall
|
|
- echo "[DEBUG] fetch Ansible firewall project docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/51640016/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output nfc_firewall.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/51640016/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip nfc_firewall.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/roles/firewall";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/projects/ansible/roles/firewall" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/roles/firewall/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
|
|
# Project: Ansible role homeassistant
|
|
- echo "[DEBUG] fetch Ansible Public homeassistant project docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/51020674/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output nfc_homeassistant.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/51020674/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip nfc_homeassistant.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/roles/homeassistant";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/projects/ansible/roles/homeassistant" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/roles/homeassistant/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
|
|
# Project: Ansible role kubernetes
|
|
- echo "[DEBUG] fetch Ansible kubernetes project docs"
|
|
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/51640029/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
|
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
|
- |
|
|
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
|
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
|
# exit 1;
|
|
else
|
|
curl --location --output nfc_kubernetes.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/51640029/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
|
unzip nfc_kubernetes.zip;
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/roles/kubernetes";
|
|
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/projects/ansible/roles/kubernetes" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/ansible/roles/kubernetes/";
|
|
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
|
fi
|
|
|
|
|
|
|
|
|
|
# # below 2 lines commented out as need to ffigure out how to download artifacts.
|
|
# - rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/operations/index.html"
|
|
# - echo "cp -rvn" "$CI_PROJECT_DIR/artifacts/build/Website.Build/build/operations" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/"
|
|
|
|
|
|
# # copy ops pages into main site, not overwriting
|
|
# #- cp -rvn "$CI_PROJECT_DIR/artifacts/build/Static Pages/build/"* "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/"
|
|
|
|
|
|
# # below line commented out as need to ffigure out how to download artifacts.
|
|
# - cp -rvf "$CI_PROJECT_DIR/artifacts/build/Website.Build/build/operations" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/"
|
|
|
|
- echo "copy prepare files (sitemap, search file) to fullsite (overwrite)"
|
|
- echo "copy each sub-repo build to fullsite (merge)"
|
|
# - echo mv "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/full-site" public
|
|
needs:
|
|
- 'Website.Build'
|
|
# only available in gitlab premium
|
|
# use: - "curl -O --header 'PRIVATE-TOKEN: ${GITLAB_API_TOKEN}' https://gitlab.example.com/api/v4/projects/${PROJECT_A_ID}/jobs/${REMOTE_JOB_ID}/artifacts/${REMOTE_FILENAME}"
|
|
# - project: nofusscomputing/ops
|
|
# job: Static Pages
|
|
# ref: development
|
|
# artifacts: true
|
|
artifacts:
|
|
expire_in: 24 hrs
|
|
when: always
|
|
paths:
|
|
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/*"
|
|
resource_group: build
|
|
rules:
|
|
# - if: '$CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != "master" && $CI_PIPELINE_SOURCE == "push"'
|
|
# when: always
|
|
|
|
# Build docs on tag so they can be downloaded from the tag job and are always available.
|
|
- if: # condition_git_tag
|
|
$CI_COMMIT_TAG != null &&
|
|
$CI_COMMIT_BRANCH == null
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
when: on_success
|
|
|
|
- if: # condition_master_branch_push
|
|
$CI_COMMIT_BRANCH == "master" &&
|
|
$CI_PIPELINE_SOURCE == "push"
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
when: on_success
|
|
|
|
- if: # condition_dev_branch_push
|
|
$CI_COMMIT_BRANCH == "development" &&
|
|
(
|
|
$CI_PIPELINE_SOURCE == "pipeline"
|
|
||
|
|
$CI_PIPELINE_SOURCE == "push"
|
|
||
|
|
$CI_PIPELINE_SOURCE == "schedule"
|
|
)
|
|
# See nofusscomputing/projects/gitlab-ci#34 for extra $CI_PIPELINE_SOURCE
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
# No changes check # See nofusscomputing/projects/gitlab-ci#34
|
|
# changes:
|
|
# paths:
|
|
# - '{docs/**,pages/**}/*.md'
|
|
# compare_to: 'master'
|
|
when: on_success
|
|
|
|
- if: # condition_not_master_or_dev_push
|
|
$CI_COMMIT_BRANCH != "master" &&
|
|
$CI_COMMIT_BRANCH != "development" &&
|
|
$CI_PIPELINE_SOURCE == "push"
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
changes:
|
|
paths:
|
|
- '{docs/**,pages/**}/*.md'
|
|
compare_to: 'development'
|
|
when: always
|
|
|
|
- when: never
|
|
|
|
|
|
pages:
|
|
stage: deploy
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
script:
|
|
- mv "$CI_PROJECT_DIR/artifacts/prepare/Assemble.Website.Prepare/build" public
|
|
needs: [ 'Assemble.Website.Prepare' ]
|
|
environment:
|
|
name: Gitlab Pages
|
|
url: $CI_PAGES_URL
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
rules:
|
|
# - if: '$CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != "master" && $CI_PIPELINE_SOURCE == "push"'
|
|
# when: on_success
|
|
|
|
# Build docs on tag so they can be downloaded from the tag job and are always available.
|
|
- if: # condition_git_tag
|
|
$CI_COMMIT_TAG != null &&
|
|
$CI_COMMIT_BRANCH == null
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
when: on_success
|
|
|
|
- if: # condition_master_branch_push
|
|
$CI_COMMIT_BRANCH == "master" &&
|
|
$CI_PIPELINE_SOURCE == "push"
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
when: on_success
|
|
|
|
- if: # condition_dev_branch_push
|
|
$CI_COMMIT_BRANCH == "development" &&
|
|
(
|
|
$CI_PIPELINE_SOURCE == "pipeline"
|
|
||
|
|
$CI_PIPELINE_SOURCE == "push"
|
|
||
|
|
$CI_PIPELINE_SOURCE == "schedule"
|
|
)
|
|
# See nofusscomputing/projects/gitlab-ci#34 for extra $CI_PIPELINE_SOURCE
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
# No changes check # See nofusscomputing/projects/gitlab-ci#34
|
|
# changes:
|
|
# paths:
|
|
# - '{docs/**,pages/**}/*.md'
|
|
# compare_to: 'master'
|
|
when: on_success
|
|
|
|
- if: # condition_not_master_or_dev_push
|
|
$CI_COMMIT_BRANCH != "master" &&
|
|
$CI_COMMIT_BRANCH != "development" &&
|
|
$CI_PIPELINE_SOURCE == "push"
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
changes:
|
|
paths:
|
|
- '{docs/**,pages/**}/*.md'
|
|
compare_to: 'development'
|
|
when: on_success
|
|
|
|
- when: never
|
|
|
|
|
|
.Pytest_template:
|
|
stage: test
|
|
image: ubuntu:18.04
|
|
before_script:
|
|
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME"
|
|
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests"
|
|
- apt update
|
|
- apt install -y python3 python3-pip ca-certificates
|
|
- apt install --no-install-recommends -y chromium-chromedriver
|
|
- pip3 install --upgrade pip
|
|
- pip3 install -r test/requirements.txt
|
|
artifacts:
|
|
expire_in: 24 hrs
|
|
when: always
|
|
paths:
|
|
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/*"
|
|
reports:
|
|
junit:
|
|
- "*.junit.xml"
|
|
rules:
|
|
# - if: '$CI_COMMIT_BRANCH && $CI_PIPELINE_SOURCE == "push"'
|
|
# when: on_success
|
|
|
|
# Build docs on tag so they can be downloaded from the tag job and are always available.
|
|
- if: # condition_git_tag
|
|
$CI_COMMIT_TAG != null &&
|
|
$CI_COMMIT_BRANCH == null
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
when: on_success
|
|
|
|
- if: # condition_master_branch_push
|
|
$CI_COMMIT_BRANCH == "master" &&
|
|
$CI_PIPELINE_SOURCE == "push"
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
when: on_success
|
|
|
|
- if: # condition_dev_branch_push
|
|
$CI_COMMIT_BRANCH == "development" &&
|
|
(
|
|
$CI_PIPELINE_SOURCE == "pipeline"
|
|
||
|
|
$CI_PIPELINE_SOURCE == "push"
|
|
||
|
|
$CI_PIPELINE_SOURCE == "schedule"
|
|
)
|
|
# See nofusscomputing/projects/gitlab-ci#34 for extra $CI_PIPELINE_SOURCE
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
|
|
# No changes check # See nofusscomputing/projects/gitlab-ci#34
|
|
# changes:
|
|
# paths:
|
|
# - '{docs/**,pages/**}/*.md'
|
|
# compare_to: 'master'
|
|
when: on_success
|
|
|
|
- if: # condition_not_master_or_dev_push
|
|
$CI_COMMIT_BRANCH != "master" &&
|
|
$CI_COMMIT_BRANCH != "development" &&
|
|
$CI_PIPELINE_SOURCE == "push"
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
changes:
|
|
paths:
|
|
- '{docs/**,pages/**}/*.md'
|
|
compare_to: 'development'
|
|
when: on_success
|
|
|
|
- when: never
|
|
|
|
|
|
Unit Tests:
|
|
extends: .Pytest_template
|
|
needs: [ 'Website.Build' ]
|
|
script:
|
|
- mv "$CI_PROJECT_DIR/artifacts/build/Website.Build/build" build
|
|
- pytest --verbose --junitxml=unit_test.junit.xml --tb=line test/unit
|
|
- cp *.junit.xml "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/"
|
|
- echo "[DEBUG] python_exit[$python_exit]"
|
|
|
|
|
|
#Integration Tests:
|
|
# extends: .Pytest_template
|
|
# needs:
|
|
# - pages
|
|
# - 'Unit Tests'
|
|
# script:
|
|
# - echo "placeholder job for integration tests" > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/DETEMEME.txt"
|
|
|
|
|
|
public_website:
|
|
stage: publish
|
|
image: alpine
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
before_script:
|
|
- ls -la /html
|
|
script:
|
|
- rm -rf /html/*
|
|
- cp -r "$CI_PROJECT_DIR/artifacts/prepare/Assemble.Website.Prepare/build"/* /html/
|
|
- ls -laR /html/
|
|
needs: [ 'Assemble.Website.Prepare', 'Unit Tests']
|
|
resource_group: production
|
|
environment:
|
|
name: production
|
|
url: https://nofusscomputing.com
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
rules:
|
|
- if: # condition_master_branch_push
|
|
$CI_COMMIT_BRANCH == "master" &&
|
|
$CI_PIPELINE_SOURCE == "push"
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
when: on_success
|
|
|
|
- if: # condition_dev_branch_push
|
|
$CI_COMMIT_BRANCH == "development" &&
|
|
(
|
|
$CI_PIPELINE_SOURCE == "pipeline"
|
|
||
|
|
$CI_PIPELINE_SOURCE == "push"
|
|
||
|
|
$CI_PIPELINE_SOURCE == "schedule"
|
|
)
|
|
# See nofusscomputing/projects/gitlab-ci#34 for extra $CI_PIPELINE_SOURCE
|
|
exists:
|
|
- '{docs/**,pages/**}/*.md'
|
|
# No changes check # See nofusscomputing/projects/gitlab-ci#34
|
|
# changes:
|
|
# paths:
|
|
# - '{docs/**,pages/**}/*.md'
|
|
# compare_to: 'master'
|
|
allow_failure: true
|
|
when: manual
|
|
- when: never
|
|
tags:
|
|
- production
|
|
- website
|