From 9cf1d86c7a7db8f874ce2dc680c4880edcd0b5f2 Mon Sep 17 00:00:00 2001 From: zzak Date: Wed, 13 Mar 2024 14:24:42 +0900 Subject: [PATCH] Use pre-built image for docs-preview to speed up the build --- pipelines/docs-preview/initial.yml | 17 ++++++++++++++--- pipelines/docs-preview/pipeline.rb | 8 +++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/pipelines/docs-preview/initial.yml b/pipelines/docs-preview/initial.yml index 3e47eb1c..bb9ee2ef 100644 --- a/pipelines/docs-preview/initial.yml +++ b/pipelines/docs-preview/initial.yml @@ -9,13 +9,20 @@ steps: command: | PATH=/bin:/usr/bin set -e + if [ -d ".buildkite" ]; then echo "+++ :bk-status-failed: .buildkite/ already exists; please remove it and try again" exit 1 + fi + + if [ -n "$$CONFIG_REPO" ]; then + GIT_REPO="$$CONFIG_REPO" else + GIT_REPO="https://github.com/rails/buildkite-config" + fi - GIT_REPO="https://github.com/rails/buildkite-config" - GIT_BRANCH="main" + GIT_BRANCH="$${CONFIG_BRANCH-main}" + GIT_BRANCH="$${GIT_BRANCH#*:}" echo "Cloning buildkite-config:" echo "git clone -b \"$$GIT_BRANCH\" \"$$GIT_REPO\" .buildkite" @@ -25,6 +32,7 @@ steps: sh -c "$$PIPELINE_COMMAND" ([ -f .buildkite/.dockerignore ] && cp .buildkite/.dockerignore .dockerignore) || true + plugins: - artifacts#v1.9.3: upload: ".dockerignore" @@ -38,21 +46,24 @@ steps: - .buildkite/runner compressed: ".buildkite.tgz" env: + BUNDLE_FROZEN: true PIPELINE_COMMAND: >- docker run --rm -v "$$PWD":/app:ro -w /app -e CI + -e BUILDKITE -e BUILDKITE_AGENT_META_DATA_QUEUE -e BUILDKITE_BRANCH -e BUILDKITE_BUILD_ID - -e BUILDKITE_PIPELINE_SLUG -e BUILDKITE_PULL_REQUEST -e BUILDKITE_PULL_REQUEST_BASE_BRANCH -e BUILDKITE_REBUILT_FROM_BUILD_ID -e BUILD_QUEUE + -e BUNDLE_FROZEN -e DOCKER_IMAGE -e RUN_QUEUE -e QUEUE ruby:latest .buildkite/bin/pipeline-generate docs-preview | buildkite-agent pipeline upload + timeout_in_minutes: 5 diff --git a/pipelines/docs-preview/pipeline.rb b/pipelines/docs-preview/pipeline.rb index f559656a..d38c3a10 100644 --- a/pipelines/docs-preview/pipeline.rb +++ b/pipelines/docs-preview/pipeline.rb @@ -1,15 +1,21 @@ # frozen_string_literal: true Buildkite::Builder.pipeline do + require "buildkite_config" + use Buildkite::Config::BuildContext + plugin :docker, "docker#v5.10.0" plugin :artifacts, "artifacts#v1.9.3" + build_context = context.extensions.find(Buildkite::Config::BuildContext) + build_context.ruby = Buildkite::Config::RubyConfig.new(prefix: "ruby:", version: Gem::Version.new("3.3")) + command do label "build", emoji: :rails key "build" command "bundle install && bundle exec rake preview_docs" plugin :docker, { - image: "ruby:latest", + image: build_context.image_name_for("br-main", prefix: nil), environment: [ "BUILDKITE_BRANCH", "BUILDKITE_BUILD_CREATOR",