Merged in feature/schedule (pull request #43)
Add schedule * Add schedule * Merged develop into feature/schedule Approved-by: Rachit Bhargava
This commit is contained in:
committed by
Rachit Bhargava
parent
f02b01d1af
commit
ff5b56dc44
@@ -3,7 +3,38 @@ definitions:
|
|||||||
- variables:
|
- variables:
|
||||||
- name: VERSION
|
- name: VERSION
|
||||||
default: "latest"
|
default: "latest"
|
||||||
|
# --------------------------------------------------------
|
||||||
|
set-variables-jobs: &set-variables-schedule-pipelines
|
||||||
|
- variables:
|
||||||
|
- name: ACTION
|
||||||
|
default: "create-schedule-pipelines"
|
||||||
|
allowed-values: # Optionally restrict variable values
|
||||||
|
- "create-schedule-pipelines"
|
||||||
|
- "delete-schedule-pipelines"
|
||||||
|
- "list-schedule-pipelines"
|
||||||
|
- name: PIPELINE_NAME
|
||||||
|
default: "common-jobs-dev"
|
||||||
|
allowed-values: # Optionally restrict variable values
|
||||||
|
- "backup-mysql-monthly-prod"
|
||||||
|
- "backup-static-monthly-prod"
|
||||||
|
- "cleanup-backup-monthly-prod"
|
||||||
|
- "common-jobs-dev" # for patch with default values
|
||||||
|
- name: BRANCH_NAME
|
||||||
|
default: "feature/backups"
|
||||||
|
allowed-values: # Optionally restrict variable values
|
||||||
|
- "develop"
|
||||||
|
- "feature/backups"
|
||||||
|
- "feature/backup"
|
||||||
|
- name: CRONTIME
|
||||||
|
default: ENTER_CRON_SCHEDULE
|
||||||
|
|
||||||
|
# -------------------------------------------------------
|
||||||
|
# allowed-values: # Optionally restrict variable values
|
||||||
|
# - "0 * * * 1 ? *" # On 1st every month
|
||||||
|
# - "0 * * * * 7 *" # Every sunday
|
||||||
|
# - ""
|
||||||
|
# - "ENTER_CRON_SCHEDULE"
|
||||||
|
# ----------------------------------------------------
|
||||||
set-variables-jobs: &set-variables-jobs-dev
|
set-variables-jobs: &set-variables-jobs-dev
|
||||||
- variables:
|
- variables:
|
||||||
- name: ENV
|
- name: ENV
|
||||||
@@ -11,7 +42,7 @@ definitions:
|
|||||||
allowed-values: # Optionally restrict variable values
|
allowed-values: # Optionally restrict variable values
|
||||||
- "dev"
|
- "dev"
|
||||||
- name: JOBNAME
|
- name: JOBNAME
|
||||||
default: "mysql-backup"
|
default: "wp-auto-patch"
|
||||||
allowed-values: # Optionally restrict variable values
|
allowed-values: # Optionally restrict variable values
|
||||||
- "wp-auto-patch"
|
- "wp-auto-patch"
|
||||||
- "mysql-backup"
|
- "mysql-backup"
|
||||||
@@ -41,7 +72,6 @@ definitions:
|
|||||||
- name: JOBNAME
|
- name: JOBNAME
|
||||||
default: "mysql-backup"
|
default: "mysql-backup"
|
||||||
allowed-values: # Optionally restrict variable values
|
allowed-values: # Optionally restrict variable values
|
||||||
- "wp-auto-patch"
|
|
||||||
- "mysql-backup"
|
- "mysql-backup"
|
||||||
- "wp-data-backup"
|
- "wp-data-backup"
|
||||||
- "mysql-restore"
|
- "mysql-restore"
|
||||||
@@ -111,6 +141,90 @@ definitions:
|
|||||||
pipelines:
|
pipelines:
|
||||||
# our custom pipeline, what shows up Bitbucket web app
|
# our custom pipeline, what shows up Bitbucket web app
|
||||||
custom:
|
custom:
|
||||||
|
|
||||||
|
# -------------------------------------------
|
||||||
|
schedule-pipelines:
|
||||||
|
- <<: *set-variables-schedule-pipelines
|
||||||
|
- step:
|
||||||
|
name: vars for schedule-pipelines
|
||||||
|
script:
|
||||||
|
- echo "export BITBUCKET_REPO_SLUG=$BITBUCKET_REPO_SLUG" >> schedule-setenv.sh
|
||||||
|
- echo "export BITBUCKET_WORKSPACE=$BITBUCKET_WORKSPACE" >> schedule-setenv.sh
|
||||||
|
- echo "export TOKEN=$TOKEN" >> schedule-setenv.sh
|
||||||
|
- echo "export ACTION=$ACTION" >> schedule-setenv.sh
|
||||||
|
- echo "export PIPELINE_NAME=$PIPELINE_NAME" >> schedule-setenv.sh
|
||||||
|
- echo "export BRANCH_NAME=$BRANCH_NAME" >> schedule-setenv.sh
|
||||||
|
- echo "export CRONTIME=\"$CRONTIME\"" >> schedule-setenv.sh
|
||||||
|
artifacts: # define the artifacts to be passed to each future step
|
||||||
|
- schedule-setenv.sh
|
||||||
|
|
||||||
|
- step:
|
||||||
|
name: Actions for schedule-pipelines
|
||||||
|
image: atlassian/pipelines-awscli
|
||||||
|
script:
|
||||||
|
- cat schedule-setenv.sh && chmod 755 ./schedule-pipeline.sh && ./schedule-pipeline.sh $ACTION
|
||||||
|
# -------------------------------------------------
|
||||||
|
|
||||||
|
backup-mysql-monthly-prod:
|
||||||
|
- step:
|
||||||
|
name: vars for common-jobs-prod
|
||||||
|
script:
|
||||||
|
- echo "export JOBNAME=mysql-backup" >> setenv.sh
|
||||||
|
- echo "export ENV=prod" >> setenv.sh
|
||||||
|
- echo "export CLUSTER=caresage-eks-cluster-prod" >> setenv.sh
|
||||||
|
- echo "export VERSION=$BITBUCKET_BUILD_NUMBER" >> setenv.sh
|
||||||
|
- echo "export SUBDOMAIN=www" >> setenv.sh
|
||||||
|
- echo "export BITBUCKET_REPO_SLUG=$BITBUCKET_REPO_SLUG" >> setenv.sh
|
||||||
|
- echo "export TOKEN=$TOKEN" >> setenv.sh
|
||||||
|
artifacts: # define the artifacts to be passed to each future step
|
||||||
|
- setenv.sh
|
||||||
|
|
||||||
|
- step:
|
||||||
|
name: common jobs for SQL and WWW backup and restore DEV
|
||||||
|
image: atlassian/pipelines-awscli
|
||||||
|
script:
|
||||||
|
- source setenv.sh && chmod 755 ./common-jobs-bitbucket.sh
|
||||||
|
- ./common-jobs-bitbucket.sh $JOBNAME
|
||||||
|
|
||||||
|
backup-static-monthly-prod:
|
||||||
|
- step:
|
||||||
|
name: vars for common-jobs-prod
|
||||||
|
script:
|
||||||
|
- echo "export JOBNAME=wp-data-backup" >> setenv.sh
|
||||||
|
- echo "export ENV=prod" >> setenv.sh
|
||||||
|
- echo "export CLUSTER=caresage-eks-cluster-prod" >> setenv.sh
|
||||||
|
- echo "export VERSION=$BITBUCKET_BUILD_NUMBER" >> setenv.sh
|
||||||
|
- echo "export SUBDOMAIN=www" >> setenv.sh
|
||||||
|
- echo "export BITBUCKET_REPO_SLUG=$BITBUCKET_REPO_SLUG" >> setenv.sh
|
||||||
|
- echo "export TOKEN=$TOKEN" >> setenv.sh
|
||||||
|
artifacts: # define the artifacts to be passed to each future step
|
||||||
|
- setenv.sh
|
||||||
|
|
||||||
|
- step:
|
||||||
|
name: common jobs for SQL and WWW backup and restore DEV
|
||||||
|
image: atlassian/pipelines-awscli
|
||||||
|
script:
|
||||||
|
- source setenv.sh && chmod 755 ./common-jobs-bitbucket.sh && ./common-jobs-bitbucket.sh $JOBNAME
|
||||||
|
|
||||||
|
cleanup-backup-monthly-prod:
|
||||||
|
- step:
|
||||||
|
name: vars for common-jobs-prod
|
||||||
|
script:
|
||||||
|
- echo "export JOBNAME=cleanup-backup" >> setenv.sh
|
||||||
|
- echo "export ENV=prod" >> setenv.sh
|
||||||
|
- echo "export CLUSTER=caresage-eks-cluster-prod" >> setenv.sh
|
||||||
|
- echo "export VERSION=$BITBUCKET_BUILD_NUMBER" >> setenv.sh
|
||||||
|
- echo "export SUBDOMAIN=www" >> setenv.sh
|
||||||
|
- echo "export BITBUCKET_REPO_SLUG=$BITBUCKET_REPO_SLUG" >> setenv.sh
|
||||||
|
- echo "export TOKEN=$TOKEN" >> setenv.sh
|
||||||
|
artifacts: # define the artifacts to be passed to each future step
|
||||||
|
- setenv.sh
|
||||||
|
|
||||||
|
- step:
|
||||||
|
name: common jobs for SQL and WWW backup and restore DEV
|
||||||
|
image: atlassian/pipelines-awscli
|
||||||
|
script:
|
||||||
|
- source setenv.sh && chmod 755 ./common-jobs-bitbucket.sh && ./common-jobs-bitbucket.sh $JOBNAME
|
||||||
deploy-dev:
|
deploy-dev:
|
||||||
- <<: *set-variables
|
- <<: *set-variables
|
||||||
- step:
|
- step:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ exec > >(tee -a script.log) 2>&1
|
|||||||
|
|
||||||
# Install the required packages #
|
# Install the required packages #
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
apk upgrade && apk add curl wget zip unzip
|
apk upgrade && apk add curl wget zip unzip coreutils
|
||||||
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x ./kubectl && mv ./kubectl /usr/local/bin/kubectl
|
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x ./kubectl && mv ./kubectl /usr/local/bin/kubectl
|
||||||
|
|
||||||
|
|
||||||
@@ -77,6 +77,15 @@ deploy_version=$2
|
|||||||
|
|
||||||
case $opt in
|
case $opt in
|
||||||
|
|
||||||
|
cleanup-backup)
|
||||||
|
|
||||||
|
aws eks update-kubeconfig --name caresage-eks-cluster-$ENV --region us-east-1 && . ./setenv.sh && chmod 755 ./s3cleanup.sh
|
||||||
|
|
||||||
|
./s3cleanup.sh && echo list-of-files-older-than-thirty-days-done || exit 9
|
||||||
|
|
||||||
|
cat script.log | egrep -v "Errors:|SQL|rewrite|Rewrite|warning|Warning|create mode" | egrep -i "not in gzip format|Permission denied|fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||||
|
|
||||||
|
;;
|
||||||
wp-auto-patch)
|
wp-auto-patch)
|
||||||
|
|
||||||
# The auto patch to be executed for dev01 to be specific
|
# The auto patch to be executed for dev01 to be specific
|
||||||
@@ -288,9 +297,7 @@ kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; mkdir -p /
|
|||||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; mkdir /tmp/uploads ;export FILE=`ls /tmp/*.zip`;unzip -o $FILE -d /tmp/uploads'
|
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; mkdir /tmp/uploads ;export FILE=`ls /tmp/*.zip`;unzip -o $FILE -d /tmp/uploads'
|
||||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; rclone sync /tmp/uploads/ /usr/share/nginx/subdomain/$SUBDOMAIN/wp-content/uploads -q && echo ---sync-done--- '
|
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; rclone sync /tmp/uploads/ /usr/share/nginx/subdomain/$SUBDOMAIN/wp-content/uploads -q && echo ---sync-done--- '
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; mkdir /usr/share/nginx/subdomain/$SUBDOMAIN/wp-content/uploads/cache && echo ---CacheCreated---'
|
|
||||||
# --------------------------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
kubectl delete po common-job-pod -n $NAMESPACE
|
kubectl delete po common-job-pod -n $NAMESPACE
|
||||||
cat script.log | egrep -v "Errors:|inflating|adding|SQL|rewrite|Rewrite|warning|Warning|create mode" | egrep -i "not in gzip format|fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
cat script.log | egrep -v "Errors:|inflating|adding|SQL|rewrite|Rewrite|warning|Warning|create mode" | egrep -i "not in gzip format|fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||||
|
|||||||
83
schedule-pipeline.sh
Normal file
83
schedule-pipeline.sh
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
exec > >(tee -a script.log) 2>&1
|
||||||
|
|
||||||
|
# Install the required packages #
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
apk upgrade && apk add --update curl wget zip unzip coreutils
|
||||||
|
|
||||||
|
cat schedule-setenv.sh && . ./schedule-setenv.sh
|
||||||
|
|
||||||
|
opt=$1
|
||||||
|
|
||||||
|
case $opt in
|
||||||
|
|
||||||
|
create-schedule-pipelines)
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
#curl --request POST --url "https://api.bitbucket.org/2.0/repositories/$BITBUCKET_WORKSPACE/$BITBUCKET_REPO_SLUG/pipelines_config/schedules" --header "Authorization: Bearer $TOKEN" --header 'Accept: application/json' --header "Content-Type: application/json" --data { \"type\": \"pipeline_schedule\", \"enabled\": true, \"target\": { \"ref_type\": \"branch\", \"type\": \"pipeline_ref_target\", \"ref_name\": \"$BRANCH_NAME\", \"selector\": { \"type\": \"custom\", \"pattern\": \"$PIPELINE_NAME\" } }, \"cron_pattern\": \"$CRONTIME\" }
|
||||||
|
# -----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
curl -X POST https://api.bitbucket.org/2.0/repositories/connectamerica/100plus-web/pipelines_config/schedules -H 'Content-Type: application/json' -H 'Accept: application/json' -H "Authorization: Bearer $TOKEN" -d "{
|
||||||
|
\"type\": \"pipeline_schedule\",
|
||||||
|
\"enabled\": true,
|
||||||
|
\"target\": {
|
||||||
|
\"ref_type\": \"branch\",
|
||||||
|
\"type\": \"pipeline_ref_target\",
|
||||||
|
\"ref_name\": \"$BRANCH_NAME\",
|
||||||
|
\"selector\": {
|
||||||
|
\"type\": \"custom\",
|
||||||
|
\"pattern\": \"$PIPELINE_NAME\"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
\"cron_pattern\": \"$CRONTIME\"
|
||||||
|
}"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
echo "" && echo -----------------------------------
|
||||||
|
|
||||||
|
cat script.log | egrep -v "Errors:|SQL|rewrite|Rewrite|warning|Warning|create mode" | egrep -i "not in gzip format|Permission denied|fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
delete-schedule-pipelines)
|
||||||
|
|
||||||
|
for i in `curl -s --request GET --url "https://api.bitbucket.org/2.0/repositories/$BITBUCKET_WORKSPACE/$BITBUCKET_REPO_SLUG/pipelines_config/schedules" --header "Authorization: Bearer $TOKEN" --header 'Accept: application/json'| jq ".values[].target.selector.pattern+.values[].uuid" |awk -F'["{}]' '{print $3}'| uniq`
|
||||||
|
|
||||||
|
do
|
||||||
|
|
||||||
|
echo curl --location -g --request DELETE --url \'https://api.bitbucket.org/2.0/repositories/$BITBUCKET_WORKSPACE/$BITBUCKET_REPO_SLUG/pipelines_config/schedules/{$i}\' --header \'Authorization: Bearer $TOKEN\' > delete.sh
|
||||||
|
|
||||||
|
chmod 755 delete.sh && ./delete.sh
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
cat script.log | egrep -v "Errors:|SQL|rewrite|Rewrite|warning|Warning|create mode" | egrep -i "not in gzip format|Permission denied|fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
|
||||||
|
list-schedule-pipelines)
|
||||||
|
|
||||||
|
echo "" && echo ----------------------------------------------
|
||||||
|
|
||||||
|
curl -s --request GET --url "https://api.bitbucket.org/2.0/repositories/$BITBUCKET_WORKSPACE/$BITBUCKET_REPO_SLUG/pipelines_config/schedules" --header "Authorization: Bearer $TOKEN" --header 'Accept: application/json' | jq .
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
cat script.log | egrep -v "Errors:|SQL|rewrite|Rewrite|warning|Warning|create mode" | egrep -i "not in gzip format|Permission denied|fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "script for schedule-pipelines"
|
||||||
|
echo "Usage: schedule-pipeline.sh {create-schedule-pipelines|delete-schedule-pipelines}"
|
||||||
|
echo "create-schedule-pipelines : create-schedule-pipelines"
|
||||||
|
echo "delete-schedule-pipelines : delete-schedule-pipelines"
|
||||||
|
echo "list-schedule-pipelines : list-schedule-pipelines"
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
Reference in New Issue
Block a user