75 lines
2.7 KiB
YAML
75 lines
2.7 KiB
YAML
|
|
tasks:
|
||
|
|
- checkout:
|
||
|
|
force-clean-build: 'true'
|
||
|
|
|
||
|
|
- script: |
|
||
|
|
#!/bin/bash
|
||
|
|
set -euxo pipefail
|
||
|
|
|
||
|
|
# Ensure there's at least one previous commit
|
||
|
|
if git rev-parse HEAD~1 >/dev/null 2>&1; then
|
||
|
|
# Collect changed *.md files under docs/ (ignore deletions)
|
||
|
|
CHANGED_MD_FILES=$(git diff --name-status HEAD~1 HEAD | \
|
||
|
|
awk '$1 != "D" {print $2}' | grep '^docs/.*\.md$' || true)
|
||
|
|
else
|
||
|
|
echo "No previous commit to compare against. Skipping update."
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [[ -z "${CHANGED_MD_FILES}" ]]; then
|
||
|
|
echo "No relevant markdown files changed under docs/. Skipping Confluence update."
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Parse minor version from semantic version
|
||
|
|
MINOR_VERSION=$(echo "${bamboo.inject.gtag}" | grep -Eo "^[0-9]+\.[0-9]+")
|
||
|
|
|
||
|
|
# Inject version numbers into documentation
|
||
|
|
sed -i "s/{{ release_version }}/${bamboo.inject.gtag}/g;s/{{ minor_version }}/${MINOR_VERSION}/g" README.md
|
||
|
|
sed -i "s/{{ release_version }}/${bamboo.inject.gtag}/g;s/{{ minor_version }}/${MINOR_VERSION}/g" docs/*.md
|
||
|
|
|
||
|
|
# Create temporary folder
|
||
|
|
mkdir -p ./vi_certs
|
||
|
|
|
||
|
|
# Download latest Vanderlande CA certificates
|
||
|
|
curl https://pki.vanderlande.com/pki/VanderlandeRootCA.crt -o - | \
|
||
|
|
openssl x509 -inform DER -out ./vi_certs/VanderlandeRootCA.crt
|
||
|
|
curl https://pki.vanderlande.com/pki/VanderlandeSubordinateCA-Internal.crt \
|
||
|
|
-o ./vi_certs/VanderlandeSubordinateCA-Internal.crt
|
||
|
|
|
||
|
|
echo "---"
|
||
|
|
echo "Starting Confluence update for the following files:"
|
||
|
|
echo "${CHANGED_MD_FILES}"
|
||
|
|
echo "---"
|
||
|
|
|
||
|
|
# Since -f only accepts one file, we must loop through the list of changed files.
|
||
|
|
for file in ${CHANGED_MD_FILES}
|
||
|
|
do
|
||
|
|
echo "Processing file: ${file}"
|
||
|
|
|
||
|
|
# Run a separate docker command for each file
|
||
|
|
docker run --rm --name "confluence-docs-update" \
|
||
|
|
-v "${bamboo.hostvolume}:/code" \
|
||
|
|
-v "${bamboo.hostvolume}/vi_certs:/usr/local/share/ca-certificates" \
|
||
|
|
-w /code \
|
||
|
|
"${bamboo.container_mark}" \
|
||
|
|
/bin/bash -c "\
|
||
|
|
update-ca-certificates && \
|
||
|
|
mark -u '${bamboo.confluence_username}' \
|
||
|
|
-p '${bamboo.confluence_password}' \
|
||
|
|
-b '${bamboo.confluence_url}' \
|
||
|
|
--ci --changes-only \
|
||
|
|
--title-from-h1 \
|
||
|
|
--space ${bamboo.confluence_space} \
|
||
|
|
--parents 'IT Technology Platform/Team Devcolla'\''s/Application Stack/Harvester Cloud Native Virtualization' \
|
||
|
|
-f '${file}'"
|
||
|
|
echo "Finished processing ${file}."
|
||
|
|
echo "---"
|
||
|
|
done
|
||
|
|
|
||
|
|
other:
|
||
|
|
clean-working-dir: true
|
||
|
|
|
||
|
|
requirements:
|
||
|
|
- system.docker.executable
|
||
|
|
- AGENT_TYPE: Linux_Base_Agent
|