基于GitLabCI/CD流水线实施Gitlab版本升级GitLab12.9>12.10.14>13.0.0>13.8.4https://docs.gitlab.com/omnibus/update/gitlab_13_changes.htmlhttps://forum.gitlab.com/t/omnibus-upgrade-from-12-10-6-to-13-0-6/38737/3https://forum.gitlab.com/t/packaged-postgresql-error-after-update-from-12-7-to-13/39451unninghandlers:RunninghandlerscompleteChefInfraClientfinished,441/1538resourcesupdatedin03minutes19secondsgitlabReconfigured!Checkingforanomnibusmanagedpostgresql:OKCheckingifpostgresql['version']isset:OKCheckingifwealreadyupgraded:NOTOKCheckingforanewerversionofPostgreSQLtoinstallUpgradingPostgreSQLto12.5CheckingifPostgreSQLbinfilesaresymlinkedtotheexpectedlocation:OKcp/opt/gitlab/embedded/服务/gitlab-rails/public/deploy.html/opt/gitlab/embedded/service/gitlab-rails/public/index.htmlTogglingdeploypage:OKTogglingservices:ok:down:alertmanager:1s,normallyupok:down:gitaly:1s,normallyupok:down:gitlab-exporter:0s,normallyupok:down:gitlab-pages:1s,normallyupok:down:grafana:0s,normallyupok:down:logrotate:0s,normallyupok:down:postgres-exporter:1s,normallyupok:down:prometheus:0s,normallyupok:down:redis-exporter:1s,normallyupok:down:sidekiq:1s,normallyupok:down:sshd:0s,normallyupTogglingservices:OKRunningstoponpostgresql:ok:down:postgresql:0s,normallyupRunningstoponpostgresql:OKSymlinkcorrectversionofbinaries:OKCreatingtemporarydatadirectory:OKInitializingthenewdatabase8usingexitcode(OKInitializingthenewdatabase)新功能(OK13job:allow_failure:exit_codes使用allow_failure:exit_codes动态控制作业是否允许失败。您可以列出哪些退出代码不被视为失败。作业因任何其他退出代码而失败。test_job_1:script:-echo"Runascriptthatresultsinexitcode1.Thisjobfails."-exit1allow_failure:exit_codes:137test_job_2:script:-echo“运行导致退出代码137的脚本。此作业不允许失败。”-exit137allow_failure:exit_codes:-137.25docs链接/ee/ci/yaml/README.html#allow_failureexit_codes流水线规则支持定义变量语句:rules:variables,(13.7引入,13.8默认启用)可以使用variables为变量定义变量规则中的特定条件:.作业:变量:DEPLOY_VARIABLE:“默认部署”规则:-if:$CI_COMMIT_REF_NAME=~/master/variables:#OverrideDEPLOY_VARIABLEdefinedDEPLOY_VARIABLE:“deploy-production”#atthejoblevel。-if:$CI_COMMIT_REF_NAME=~/feature_variables"true"#Defineanewvariable.script:-echo"Runscriptwith$DEPLOY_VARIABLEasanargument"-echo"Runanotherscriptif$IS_A_FEATUREexists"参考链接:https://docs.gitlab.com/ee/ci/yaml/README.html#allow_failureexit_codesExecutorsoftypeDocker配置多个镜像拉取策略pull_policy参数允许您指定一个拉取策略列表。列表中的策略按从左到右的顺序尝试,直到拉取成功或列表用完。何时使用多重拉取策略?当Docker注册表不可用并且您需要提高作业弹性时,此功能很有用。如果您使用always策略并且注册表不可用,即使所需的图像缓存在本地,作业也会失败。为了克服这个问题,您可以添加在失败时执行的额外回退拉取策略。通过添加第二个pull策略值if-not-present,Runner可以找到任何本地缓存的Docker镜像层。[runners.docker]pull_policy=["always","if-not-present"]项目配置是否存储最新的工件默认情况下,永远不会删除最近成功作业的最新工件。如果一个作业配置了expire_in,它的工件只有在更新的工件存在时才会过期。在包含大量工作或大型工件的项目中,保留最新的工件会占用大量存储空间。如果您不需要项目中的最新工件,您可以禁用此行为以节省空间:导航至设置>CI/CD>工件。取消选中“保留上次成功完成的作业的工件”。您可以在实例的CI/CD设置中为自管理实例上的所有项目禁用此行为。禁用该功能后,最新的工件不会立即过期。必须运行新管道才能使最新的工件过期并被删除。不要重复使用分支和合并13.8添加了两个预定义变量,可用于控制CI管道。CI_PROJECT_CONFIG_PATH指定项目的CI配置文件路径。CI_OPEN_MERGE_REQUESTS在分支和合并请求管道中可用。最多四个使用当前分支和项目作为合并请求源的合并请求的逗号分隔列表。例如:gitlab-org/gitlab!333、gitlab-org/gitlab-foss!11。管道配置可视化要查看gitlab-ci.yml配置的可视化,请在您的项目中转到CI/CD>编辑器并选择**可视化**选项卡。可视化显示所有阶段和作业。任何需求关系都显示为将作业连接在一起的线,显示执行的层次结构:将鼠标悬停在作业上以突出显示其需求关系:如果配置没有任何需求关系,则不会绘制任何线,因为每个作业仅依赖于前一阶段成功完成。启用或禁用管道编辑器:Feature.disable(:ci_pipeline_editor_page)Feature.enable(:ci_pipeline_editor_page)
