Commit eae6f4a1 authored by Waqas Riaz's avatar Waqas Riaz

updated CI/CD parts

parent ff81fe30
Pipeline #4152 failed
stages: stages:
- increment_version - build_dashboards
- build - build_alerts
- deploy - deploy_dashboards
- deploy_alerts
# auto_versioning_job: build_dashboards_job:
# stage: increment_version stage: build_dashboards
# script:
# # - git pull
# - ./increment-version.sh
# - git add version.txt
# - git commit -m "Bump version to $(cat version.txt)"
# - git push
# only:
# - master
# tags:
# - versioning
build_job:
stage: build
before_script: before_script:
- curl --version - curl --version
- jsonnet --version - jsonnet --version
- tar --version - tar --version
script: script:
- echo "Starting script for deploying to Jfrog" - echo "Building updated dashboards"
- files_list=$(find . -type f -name "*.jsonnet" ! -path "./grafonnet-lib/*") - scripts/build_dashboards.sh
- echo "Creating directory" - echo "Promoting json artifacts to artifactory"
- mkdir grafonnet - scripts/promote_dashboard_artifacts.sh
# - export version=$(echo "$(cat version.txt) + 0.1" | bc) rules:
# - export version=$(cat version.txt) - changes:
- ls - dashboards/*
- | - when: manual
while IFS= read -r jsonnet_file;
do
echo $jsonnet_file
filename=$(basename -- "$jsonnet_file")
filename="${filename%.*}"
echo $filename
JSONNET_PATH=grafonnet-lib \
jsonnet $jsonnet_file > grafonnet/$filename.json
done <<< "$files_list"
- tar -cvzf grafonnet.tar.gz grafonnet/
# - echo "version.txt is `cat version.txt` and uploading version is $version"
- echo "Uploading to $ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/grafonnet.tar.gz"
- curl -u $ARTIFACTORY_USER:$ARTIFACTORY_PASS -T grafonnet.tar.gz "$ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/grafonnet.tar.gz"
# brew install jsonnet
# jsonnet -v
tags: tags:
- ci - ci
only: only:
- master - master
deploy_job: build_alerts_job:
stage: deploy stage: build_alerts
before_script:
- curl --version
- jsonnet --version
- tar --version
script:
- echo "Building updated alerts"
- scripts/build_alerts.sh
- echo "Promoting json artifacts to artifactory"
- scripts/promote_alerts_artifacts.sh
rules:
- changes:
- alerts/*
- alerts-config/*
- when: manual
tags:
- ci
only:
- master
deploy_dashboards_job:
stage: deploy_dashboards
before_script: before_script:
- curl --version - curl --version
- jq --version - jq --version
- tar --version - tar --version
script: script:
# - export version=$(echo "$(cat version.txt) + 0.1" | bc) - echo "Deploying dasbhoards"
# - export version=$(cat version.txt) - scripts/deploy_dashboards.sh
- mkdir -p build/$CI_BUILD_ID needs:
- cd build/$CI_BUILD_ID - job:
- echo "Downloading artifact from $ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/grafonnet.tar.gz" - build_dashboards
- curl -O -u $ARTIFACTORY_USER:$ARTIFACTORY_PASS "$ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/grafonnet.tar.gz"
- ls -larth
- pwd
- tar -xzvf grafonnet.tar.gz
- cd grafonnet
- ls -larth
- |
for FILE in *;
do
echo "$FILE \n";
DASHBOARD="{\"dashboard\": $(jq . $FILE), \"overwrite\": true}"
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "$DASHBOARD" \
$GRAFANA_URL/api/dashboards/db
echo "\n"
done
#grafonnet.tar.gz
tags: tags:
- cd - cd
only: only:
- master - master
\ No newline at end of file
deploy_alerts_job:
stage: deploy_alerts
before_script:
- curl --version
- jq --version
- tar --version
script:
- echo "Deploying alerts"
- scripts/deploy_alerts.sh
needs:
- job:
- build_alerts
tags:
- cd
only:
- master
\ No newline at end of file
#!/bin/bash #!/bin/bash
ALERTS_JSONNET_PATH=../alerts ALERTS_JSONNET_PATH=alerts
ALERTS_BUILD_PATH=../build/alerts ALERTS_BUILD_PATH=build/alerts
ALERTS_TAR_NAME=alerts ALERTS_TAR_NAME=alerts
## /build/archive from the root of the project ARCHIVE_PATH=build/archive
ARCHIVE_PATH=../archive
CURRENT_DIR=$PWD CURRENT_DIR=$PWD
...@@ -14,7 +13,11 @@ mkdir -p ${ARCHIVE_PATH} ...@@ -14,7 +13,11 @@ mkdir -p ${ARCHIVE_PATH}
echo "Cleaning up previous builds" echo "Cleaning up previous builds"
rm -rf ${ALERTS_BUILD_PATH}/*.json rm -rf ${ALERTS_BUILD_PATH}/*.json
for json_file in ${ALERTS_JSONNET_PATH}/*.jsonnet;
LAST_COMMIT_FILES=$(git diff --name-only HEAD^ HEAD ${ALERTS_JSONNET_PATH} | xargs -I{} basename {} )
echo "last commit files $LAST_COMMIT_FILES"
for json_file in ${LAST_COMMIT_FILES[@]};
do do
echo "Filename is $json_file" echo "Filename is $json_file"
filename=$(basename -- "${json_file}") filename=$(basename -- "${json_file}")
...@@ -24,21 +27,6 @@ for json_file in ${ALERTS_JSONNET_PATH}/*.jsonnet; ...@@ -24,21 +27,6 @@ for json_file in ${ALERTS_JSONNET_PATH}/*.jsonnet;
echo "Created new json at ${ALERTS_BUILD_PATH}/${filename}.json" echo "Created new json at ${ALERTS_BUILD_PATH}/${filename}.json"
done done
cd ${ALERTS_BUILD_PATH} ls -larth ${ALERTS_BUILD_PATH}
count_file=`ls -1 *.json 2>/dev/null | wc -l`
echo "${count_file} json files found at `pwd`"
if [ $count_file != 0 ]
then
tar -cvzf ${ARCHIVE_PATH}/${ALERTS_TAR_NAME}.tar.gz *.json
echo "Uploading to $ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/${ALERTS_TAR_NAME}.tar.gz"
curl -u $ARTIFACTORY_USER:$ARTIFACTORY_PASS -T ${ARCHIVE_PATH}/${ALERTS_TAR_NAME}.tar.gz "$ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/${ALERTS_TAR_NAME}.tar.gz"
echo "Artifact Uploaded Successfully"
else
echo "ERROR: No json files found at ${ALERTS_BUILD_PATH}. Build process Failed"
ls -larth ${ALERTS_BUILD_PATH}
exit 1
fi
cd ${CURRENT_DIR} cd ${CURRENT_DIR}
\ No newline at end of file
#!/bin/bash #!/bin/bash
DASHBOARDS_JSONNET_PATH=../dashboards DASHBOARDS_JSONNET_PATH=dashboards
DASHBOARDS_BUILD_PATH=../build/dashboards DASHBOARDS_BUILD_PATH=build/dashboards
DASHBOARDS_TAR_NAME=dashboards DASHBOARDS_TAR_NAME=dashboards
## /build/archive from the root of the project ## build/archive from the root of the project
ARCHIVE_PATH=../archive ARCHIVE_PATH=build/archive
CURRENT_DIR=$PWD CURRENT_DIR=$PWD
...@@ -14,43 +14,20 @@ mkdir -p ${ARCHIVE_PATH} ...@@ -14,43 +14,20 @@ mkdir -p ${ARCHIVE_PATH}
echo "Cleaning up previous builds" echo "Cleaning up previous builds"
rm -rf ${DASHBOARDS_BUILD_PATH}/*.json rm -rf ${DASHBOARDS_BUILD_PATH}/*.json
DASHBOARD_JSONNET_FILES=$(find ${DASHBOARDS_JSONNET_PATH} -type f -name "*.jsonnet" ! -path "../grafonnet-lib/*") #| xargs -I{} basename {} )
LAST_COMMIT_FILES=$(git diff --name-only HEAD^ HEAD) LAST_COMMIT_FILES=$(git diff --name-only HEAD^ HEAD ${DASHBOARDS_JSONNET_PATH} | xargs -I{} basename {} )
echo last commit files $LAST_COMMIT_FILES echo "last commit files $LAST_COMMIT_FILES"
echo dashboards files $DASHBOARD_JSONNET_FILES
UPDATED_DASHBOARDS=($(comm -12 <(echo "${LAST_COMMIT_FILES[@]}" | tr ' ' '\n' | sort) <(echo "${DASHBOARD_JSONNET_FILES[@]}" | tr ' ' '\n' | sort))) for json_file in ${LAST_COMMIT_FILES[@]};
exit
echo "creating jsons for ${#UPDATED_DASHBOARDS[@] } jsonnet files"
for json_file in ${UPDATED_DASHBOARDS[@]};
do do
echo "Filename is $json_file" echo "Filename is $json_file"
filename=$(basename -- "${json_file}") filename=$(basename -- "${json_file}")
filename="${filename%.*}" filename="${filename%.*}"
JSONNET_PATH=../grafonnet-lib \ echo $filename
JSONNET_PATH=grafonnet-lib \
jsonnet ${DASHBOARDS_JSONNET_PATH}/${json_file} > ${DASHBOARDS_BUILD_PATH}/${filename}.json jsonnet ${DASHBOARDS_JSONNET_PATH}/${json_file} > ${DASHBOARDS_BUILD_PATH}/${filename}.json
echo "Created new json at ${DASHBOARDS_BUILD_PATH}/${filename}.json" echo "Created new json at ${DASHBOARDS_BUILD_PATH}/${filename}.json"
done done
ls -larth ${DASHBOARDS_BUILD_PATH}
#cd ${DASHBOARDS_BUILD_PATH}
#
#count_file=`ls -1 *.json 2>/dev/null | wc -l`
#echo "${count_file} json files found at `pwd`"
#
#if [ $count_file != 0 ]
# then
# tar -cvzf ${ARCHIVE_PATH}/${DASHBOARDS_TAR_NAME}.tar.gz *.json
# echo "Uploading to $ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/${DASHBOARDS_TAR_NAME}.tar.gz"
# curl -u $ARTIFACTORY_USER:$ARTIFACTORY_PASS -T ${ARCHIVE_PATH}/${DASHBOARDS_TAR_NAME}.tar.gz "$ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/${DASHBOARDS_TAR_NAME}.tar.gz"
# echo "Artifact Uploaded Successfully"
#else
# echo "ERROR: No json files found at ${DASHBOARDS_BUILD_PATH}. Build process Failed"
# ls -larth ${DASHBOARDS_BUILD_PATH}
# exit 1
#fi
cd ${CURRENT_DIR} cd ${CURRENT_DIR}
\ No newline at end of file
#!/bin/bash #!/bin/bash
ALERTS_DEPLOY_DIR=build/$CI_BUILD_ID/alerts ALERTS_DEPLOY_DIR=build/$CI_BUILD_ID/alerts
ALERTS_TAR_NAME=alerts ALERTS_TAR_NAME=alerts
CURRENT_DIR=$PWD CURRENT_DIR=$PWD
...@@ -7,7 +8,7 @@ CURRENT_DIR=$PWD ...@@ -7,7 +8,7 @@ CURRENT_DIR=$PWD
mkdir -p ${ALERTS_DEPLOY_DIR} mkdir -p ${ALERTS_DEPLOY_DIR}
cd ${ALERTS_DEPLOY_DIR} cd ${ALERTS_DEPLOY_DIR}
#cleaning up previous artifacts echo "Cleaning up previous archives"
rm -rf ${ALERTS_TAR_NAME}.tar.gz rm -rf ${ALERTS_TAR_NAME}.tar.gz
echo "Downloading artifact from $ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/${ALERTS_TAR_NAME}.tar.gz" echo "Downloading artifact from $ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/${ALERTS_TAR_NAME}.tar.gz"
......
...@@ -7,7 +7,7 @@ CURRENT_DIR=$PWD ...@@ -7,7 +7,7 @@ CURRENT_DIR=$PWD
mkdir -p ${ALERTS_DEPLOY_DIR} mkdir -p ${ALERTS_DEPLOY_DIR}
cd ${ALERTS_DEPLOY_DIR} cd ${ALERTS_DEPLOY_DIR}
#cleaning up previous artifacts echo "Cleaning up previous archives"
rm -rf ${DASHBOARD_TAR_NAME}.tar.gz rm -rf ${DASHBOARD_TAR_NAME}.tar.gz
echo "Downloading artifact from $ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/${DASHBOARD_TAR_NAME}.tar.gz" echo "Downloading artifact from $ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/${DASHBOARD_TAR_NAME}.tar.gz"
......
#!/bin/bash
ALERTS_BUILD_PATH=build/alerts
ALERTS_TAR_NAME=alerts
ARCHIVE_PATH=build/archive
CURRENT_DIR=$PWD
cd ${ALERTS_BUILD_PATH}
count_file=`ls -1 *.json 2>/dev/null | wc -l`
echo "${count_file} json files found at `pwd`"
if [ $count_file != 0 ]
then
tar -cvzf ${ARCHIVE_PATH}/${ALERTS_TAR_NAME}.tar.gz *.json
echo "Uploading to $ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/${ALERTS_TAR_NAME}.tar.gz"
curl -u $ARTIFACTORY_USER:$ARTIFACTORY_PASS -T ${ARCHIVE_PATH}/${ALERTS_TAR_NAME}.tar.gz "$ARTIFACTORY_URL/grafonet/$CI_PIPELINE_ID/${ALERTS_TAR_NAME}.tar.gz"
echo "Artifact Uploaded Successfully"
else
echo "ERROR: No json files found at ${ALERTS_BUILD_PATH}. Build process Failed"
ls -larth ${ALERTS_BUILD_PATH}
exit 1
fi
cd ${CURRENT_DIR}
\ No newline at end of file
#!/bin/bash #!/bin/bash
DASHBOARDS_BUILD_PATH=../build/dashboards
DASHBOARDS_BUILD_PATH=build/dashboards
DASHBOARDS_TAR_NAME=dashboards DASHBOARDS_TAR_NAME=dashboards
## /build/archive from the root of the project ARCHIVE_PATH=build/archive
ARCHIVE_PATH=../archive
CURRENT_DIR=$PWD CURRENT_DIR=$PWD
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment