#104 Backups should only exclude config.xml in top level job directories
This commit is contained in:
		
							parent
							
								
									bf07fa59ef
								
							
						
					
					
						commit
						c6c3987588
					
				|  | @ -1,4 +1,4 @@ | ||||||
| FROM alpine:3.9 | FROM debian:buster-slim | ||||||
| 
 | 
 | ||||||
| ENV USER=user | ENV USER=user | ||||||
| ENV UID=1000 | ENV UID=1000 | ||||||
|  | @ -10,8 +10,8 @@ RUN addgroup --gid "$GID" "$USER" && \ | ||||||
|     --gecos "" \ |     --gecos "" \ | ||||||
|     --ingroup "$USER" \ |     --ingroup "$USER" \ | ||||||
|     --uid "$UID" \ |     --uid "$UID" \ | ||||||
|     "$USER" && \ |     "$USER" | ||||||
|     apk add --no-cache bash | 
 | ||||||
| WORKDIR /home/user/bin | WORKDIR /home/user/bin | ||||||
| COPY bin . | COPY bin . | ||||||
| RUN chmod +x *.sh | RUN chmod +x *.sh | ||||||
|  |  | ||||||
|  | @ -67,7 +67,7 @@ endif | ||||||
| 
 | 
 | ||||||
| define e2e | define e2e | ||||||
| echo "\nRunning $(1) e2e test"; | echo "\nRunning $(1) e2e test"; | ||||||
| @e2e/$(1)/test.sh $(DOCKER_REGISTRY)-$(NAME):$(GITCOMMIT); | @e2e/$(1)/test.sh $(DOCKER_REGISTRY)-$(NAME):$(GITCOMMIT) | ||||||
| endef | endef | ||||||
| 
 | 
 | ||||||
| .PHONY: docker-e2e | .PHONY: docker-e2e | ||||||
|  |  | ||||||
|  | @ -10,7 +10,11 @@ BACKUP_TMP_DIR=$(mktemp -d) | ||||||
| backup_number=$1 | backup_number=$1 | ||||||
| echo "Running backup" | echo "Running backup" | ||||||
| 
 | 
 | ||||||
| tar -C ${JENKINS_HOME} -czf "${BACKUP_TMP_DIR}/${backup_number}.tar.gz" --exclude jobs/*/config.xml --exclude jobs/*/workspace* -c jobs && \ | # config.xml in a job directory is a config file that shouldnt be backed up | ||||||
|  | # config.xml in child directores is state that should. For example- | ||||||
|  | # branches/myorg/branches/myrepo/branches/master/config.xml should be retained while | ||||||
|  | # branches/myorg/config.xml should not | ||||||
|  | tar -C ${JENKINS_HOME} -czf "${BACKUP_TMP_DIR}/${backup_number}.tar.gz" --exclude jobs/*/workspace* --no-wildcards-match-slash --anchored --exclude jobs/*/config.xml -c jobs && \ | ||||||
| mv ${BACKUP_TMP_DIR}/${backup_number}.tar.gz ${BACKUP_DIR}/${backup_number}.tar.gz | mv ${BACKUP_TMP_DIR}/${backup_number}.tar.gz ${BACKUP_DIR}/${backup_number}.tar.gz | ||||||
| 
 | 
 | ||||||
| [[ ! -s ${BACKUP_DIR}/${backup_number}.tar.gz ]] && echo "backup file '${BACKUP_DIR}/${backup_number}.tar.gz' is empty" && exit 1; | [[ ! -s ${BACKUP_DIR}/${backup_number}.tar.gz ]] && echo "backup file '${BACKUP_DIR}/${backup_number}.tar.gz' is empty" && exit 1; | ||||||
|  |  | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | build.xml | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | build.xml | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | build logs | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | 2 | ||||||
|  | @ -16,6 +16,7 @@ fi | ||||||
| JENKINS_HOME="$(pwd)/jenkins_home" | JENKINS_HOME="$(pwd)/jenkins_home" | ||||||
| BACKUP_DIR="$(pwd)/backup" | BACKUP_DIR="$(pwd)/backup" | ||||||
| RESTORE_FOLDER="$(pwd)/restore" | RESTORE_FOLDER="$(pwd)/restore" | ||||||
|  | JENKINS_HOME_AFTER_RESTORE="$(pwd)/jenkins_home_after_restore" | ||||||
| mkdir -p ${BACKUP_DIR} | mkdir -p ${BACKUP_DIR} | ||||||
| mkdir -p ${RESTORE_FOLDER} | mkdir -p ${RESTORE_FOLDER} | ||||||
| 
 | 
 | ||||||
|  | @ -35,6 +36,6 @@ backup_file="${BACKUP_DIR}/${backup_number}.tar.gz" | ||||||
| docker exec -it ${cid} /bin/bash -c "JENKINS_HOME=${RESTORE_FOLDER};/home/user/bin/restore.sh ${backup_number}" | docker exec -it ${cid} /bin/bash -c "JENKINS_HOME=${RESTORE_FOLDER};/home/user/bin/restore.sh ${backup_number}" | ||||||
| 
 | 
 | ||||||
| echo "Compare directories" | echo "Compare directories" | ||||||
| diff --brief --recursive ${JENKINS_HOME} ${RESTORE_FOLDER} | diff --brief --recursive "${RESTORE_FOLDER}" "${JENKINS_HOME_AFTER_RESTORE}" | ||||||
| echo "Directories are the same" | echo "Directories are the same" | ||||||
| echo PASS | echo PASS | ||||||
		Loading…
	
		Reference in New Issue