让我们看看jenkins的构建输出。
[SSH] executing...
Error: No such container: dbf
Uploading mysql backup msql_backup20190519_1224.sql
[SSH] completed
[SSH] exit-status: 0
Finished: SUCCESS
如您所见,我故意在脚本中犯了一些错误。现在,正如您在输出中看到的那样,虽然有一个错误,但是构建仍成功完成。 (最后一行)。
即使出现错误,为什么也标记为成功?
我所做的一种解决方法是在脚本的开头插入一行。这个-set -e
。然后它起作用,并给出正确的故障响应。任何帮助,将不胜感激。谢谢。
编辑:我的脚本是这个
BACKUP_NAME=$(date +%Y%m%d_%H%M)
BACKUP=backup$BACKUP_NAME.sql
mkdir -p /var/backups
docker exec dbf /usr/bin/mysqldump -u root --password=$DB_PASSWORD db_name > /var/backups/$BACKUP
export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_KEY
echo "Uploading mysql backup $BACKUP"
aws s3 cp /var/backups/$BACKUP s3://$AWS_BUCKET_NAME/$BACKUP
echo "deleting all sql files older than 3 days"
find /var/backups/backup* -mtime +2 -type f -delete
现在,如果您看到的话,docker exec dbf不应报告错误,因为我故意键入dbf而不是db。