concourse/pipelines/debian-worker-image-build.yaml (452 lines of code) (raw):
---
resource_types:
- name: registry-image-private
type: registry-image
source:
repository: gcr.io/compute-image-tools/registry-image-forked
tag: latest
- name: gcs
type: registry-image
source:
repository: frodenas/gcs-resource
resources:
- name: compute-image-tools
type: git
source:
uri: https://github.com/GoogleCloudPlatform/compute-image-tools.git
branch: master
- name: guest-test-infra
type: git
source:
uri: https://github.com/GoogleCloudPlatform/guest-test-infra.git
branch: master
- name: debian-11-worker-gcs
type: gcs
source:
bucket: artifact-releaser-prod-rtp
regexp: "debian-worker/debian-11-worker-v([0-9]+).tar.gz"
- name: debian-12-worker-gcs
type: gcs
source:
bucket: artifact-releaser-prod-rtp
regexp: "debian-worker/debian-12-worker-v([0-9]+).tar.gz"
- name: debian-12-worker-arm64-gcs
type: gcs
source:
bucket: artifact-releaser-prod-rtp
regexp: "debian-worker/debian-12-worker-arm64-v([0-9]+).tar.gz"
jobs:
# Build jobs
- name: build-debian-11-worker
plan:
- get: compute-image-tools
- get: guest-test-infra
- task: generate-timestamp
file: guest-test-infra/concourse/tasks/generate-timestamp.yaml
- load_var: start-timestamp-ms
file: timestamp/timestamp-ms
- task: generate-id
file: guest-test-infra/concourse/tasks/generate-id.yaml
- load_var: id
file: generate-id/id
- task: generate-build-id
file: guest-test-infra/concourse/tasks/generate-build-id.yaml
vars:
id: '((.:id))'
prefix: "debian-11-worker"
- put: debian-11-worker-gcs
params:
file: build-id-dir/debian-11-worker*
get_params:
skip_download: "true"
- load_var: gcs-url
file: debian-11-worker-gcs/url
- task: generate-build-date
file: guest-test-infra/concourse/tasks/generate-version.yaml
- load_var: build-date
file: publish-version/version
- task: daisy-build-debian-11-worker
file: guest-test-infra/concourse/tasks/daisy-build-images-debian.yaml
vars:
wf: "debian/debian_11_worker.wf.json"
gcs_url: ((.:gcs-url))
build_date: ((.:build-date))
on_success:
task: success
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "build-debian-11-worker"
result_state: "success"
start_timestamp: ((.:start-timestamp-ms))
on_failure:
task: failure
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "build-debian-11-worker"
result_state: "failure"
start_timestamp: ((.:start-timestamp-ms))
- name: build-debian-12-worker
plan:
- get: compute-image-tools
- get: guest-test-infra
- task: generate-timestamp
file: guest-test-infra/concourse/tasks/generate-timestamp.yaml
- load_var: start-timestamp-ms
file: timestamp/timestamp-ms
- task: generate-id
file: guest-test-infra/concourse/tasks/generate-id.yaml
- load_var: id
file: generate-id/id
- task: generate-build-id
file: guest-test-infra/concourse/tasks/generate-build-id.yaml
vars:
id: '((.:id))'
prefix: "debian-12-worker"
- put: debian-12-worker-gcs
params:
file: build-id-dir/debian-12-worker*
get_params:
skip_download: "true"
- load_var: gcs-url
file: debian-12-worker-gcs/url
- task: generate-build-date
file: guest-test-infra/concourse/tasks/generate-version.yaml
- load_var: build-date
file: publish-version/version
- task: daisy-build-debian-12-worker
file: guest-test-infra/concourse/tasks/daisy-build-images-debian.yaml
vars:
wf: "debian/debian_12_worker.wf.json"
gcs_url: ((.:gcs-url))
build_date: ((.:build-date))
on_success:
task: success
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "build-debian-12-worker"
result_state: "success"
start_timestamp: ((.:start-timestamp-ms))
on_failure:
task: failure
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "build-debian-12-worker"
result_state: "failure"
start_timestamp: ((.:start-timestamp-ms))
- name: build-debian-12-worker-arm64
plan:
- get: compute-image-tools
- get: guest-test-infra
- task: generate-timestamp
file: guest-test-infra/concourse/tasks/generate-timestamp.yaml
- load_var: start-timestamp-ms
file: timestamp/timestamp-ms
- task: generate-id
file: guest-test-infra/concourse/tasks/generate-id.yaml
- load_var: id
file: generate-id/id
- task: generate-build-id
file: guest-test-infra/concourse/tasks/generate-build-id.yaml
vars:
id: '((.:id))'
prefix: "debian-12-worker-arm64"
- put: debian-12-worker-arm64-gcs
params:
file: build-id-dir/debian-12-worker-arm64*
get_params:
skip_download: "true"
- load_var: gcs-url
file: debian-12-worker-arm64-gcs/url
- task: generate-build-date
file: guest-test-infra/concourse/tasks/generate-version.yaml
- load_var: build-date
file: publish-version/version
- task: daisy-build-debian-12-worker-arm64
file: guest-test-infra/concourse/tasks/daisy-build-images-debian.yaml
vars:
wf: "debian/debian_12_worker_arm64.wf.json"
gcs_url: ((.:gcs-url))
build_date: ((.:build-date))
on_success:
task: success
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "build-debian-12-worker-arm64"
result_state: "success"
start_timestamp: ((.:start-timestamp-ms))
on_failure:
task: failure
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "build-debian-12-worker-arm64"
result_state: "failure"
start_timestamp: ((.:start-timestamp-ms))
# Publish jobs
- name: publish-to-testing-debian-11-worker
plan:
- get: guest-test-infra
- get: compute-image-tools
- task: generate-timestamp
file: guest-test-infra/concourse/tasks/generate-timestamp.yaml
- load_var: start-timestamp-ms
file: timestamp/timestamp-ms
- get: debian-11-worker-gcs
passed: [build-debian-11-worker]
trigger: false
params:
skip_download: "true"
- load_var: source-version
file: debian-11-worker-gcs/version
- task: generate-version
file: guest-test-infra/concourse/tasks/generate-version.yaml
- load_var: publish-version
file: publish-version/version # produced from generate-version task
- task: publish-debian-11-worker
file: guest-test-infra/concourse/tasks/daisy-publish-images.yaml
vars:
source_gcs_path: "gs://artifact-releaser-prod-rtp/debian-worker"
source_version: v((.:source-version))
publish_version: ((.:publish-version))
wf: "debian/debian_11_worker.publish.json"
environment: "test"
on_success:
task: success
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "publish-to-testing-debian-11-worker"
result_state: "success"
start_timestamp: ((.:start-timestamp-ms))
on_failure:
task: failure
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "publish-to-testing-debian-11-worker"
result_state: "failure"
start_timestamp: ((.:start-timestamp-ms))
- name: publish-to-testing-debian-12-worker
plan:
- get: guest-test-infra
- get: compute-image-tools
- task: generate-timestamp
file: guest-test-infra/concourse/tasks/generate-timestamp.yaml
- load_var: start-timestamp-ms
file: timestamp/timestamp-ms
- get: debian-12-worker-gcs
passed: [build-debian-12-worker]
trigger: false
params:
skip_download: "true"
- load_var: source-version
file: debian-12-worker-gcs/version
- task: generate-version
file: guest-test-infra/concourse/tasks/generate-version.yaml
- load_var: publish-version
file: publish-version/version # produced from generate-version task
- task: publish-debian-12-worker
file: guest-test-infra/concourse/tasks/daisy-publish-images.yaml
vars:
source_gcs_path: "gs://artifact-releaser-prod-rtp/debian-worker"
source_version: v((.:source-version))
publish_version: ((.:publish-version))
wf: "debian/debian_12_worker.publish.json"
environment: "test"
on_success:
task: success
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "publish-to-testing-debian-12-worker"
result_state: "success"
start_timestamp: ((.:start-timestamp-ms))
on_failure:
task: failure
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "publish-to-testing-debian-12-worker"
result_state: "failure"
start_timestamp: ((.:start-timestamp-ms))
- name: publish-to-testing-debian-12-worker-arm64
plan:
- get: guest-test-infra
- get: compute-image-tools
- task: generate-timestamp
file: guest-test-infra/concourse/tasks/generate-timestamp.yaml
- load_var: start-timestamp-ms
file: timestamp/timestamp-ms
- get: debian-12-worker-arm64-gcs
passed: [build-debian-12-worker-arm64]
trigger: false
params:
skip_download: "true"
- load_var: source-version
file: debian-12-worker-arm64-gcs/version
- task: generate-version
file: guest-test-infra/concourse/tasks/generate-version.yaml
- load_var: publish-version
file: publish-version/version # produced from generate-version task
- task: publish-debian-12-worker-arm64
file: guest-test-infra/concourse/tasks/daisy-publish-images.yaml
vars:
source_gcs_path: "gs://artifact-releaser-prod-rtp/debian-worker"
source_version: v((.:source-version))
publish_version: ((.:publish-version))
wf: "debian/debian_12_worker_arm64.publish.json"
environment: "test"
on_success:
task: success
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "publish-to-testing-debian-12-worker-arm64"
result_state: "success"
start_timestamp: ((.:start-timestamp-ms))
on_failure:
task: failure
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "publish-to-testing-debian-12-worker-arm64"
result_state: "failure"
start_timestamp: ((.:start-timestamp-ms))
- name: publish-to-prod-debian-11-worker
plan:
- get: guest-test-infra
- get: compute-image-tools
- task: generate-timestamp
file: guest-test-infra/concourse/tasks/generate-timestamp.yaml
- load_var: start-timestamp-ms
file: timestamp/timestamp-ms
- get: debian-11-worker-gcs
passed: [publish-to-testing-debian-11-worker]
trigger: false
params:
skip_download: "true"
- load_var: source-version
file: debian-11-worker-gcs/version
- task: generate-version
file: guest-test-infra/concourse/tasks/generate-version.yaml
- load_var: publish-version
file: publish-version/version # produced from generate-version task
- task: publish-debian-11-worker
file: guest-test-infra/concourse/tasks/gcloud-publish-image.yaml
vars:
gcs_image_path: "gs://artifact-releaser-prod-rtp/debian-worker"
source_version: v((.:source-version))
publish_version: ((.:publish-version))
wf: "debian/debian_11_worker.publish.json"
release_notes: ""
image_name: "debian_11_worker"
topic: "projects/artifact-releaser-prod/topics/gcp-guest-image-release-prod"
on_success:
task: success
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "publish-to-prod-debian-11-worker"
result_state: "success"
start_timestamp: ((.:start-timestamp-ms))
on_failure:
task: failure
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "publish-to-prod-debian-11-worker"
result_state: "failure"
start_timestamp: ((.:start-timestamp-ms))
- name: publish-to-prod-debian-12-worker
plan:
- get: guest-test-infra
- get: compute-image-tools
- task: generate-timestamp
file: guest-test-infra/concourse/tasks/generate-timestamp.yaml
- load_var: start-timestamp-ms
file: timestamp/timestamp-ms
- get: debian-12-worker-gcs
passed: [publish-to-testing-debian-12-worker]
trigger: false
params:
skip_download: "true"
- load_var: source-version
file: debian-12-worker-gcs/version
- task: generate-version
file: guest-test-infra/concourse/tasks/generate-version.yaml
- load_var: publish-version
file: publish-version/version # produced from generate-version task
- task: publish-debian-12-worker
file: guest-test-infra/concourse/tasks/gcloud-publish-image.yaml
vars:
gcs_image_path: "gs://artifact-releaser-prod-rtp/debian-worker"
source_version: v((.:source-version))
publish_version: ((.:publish-version))
wf: "debian/debian_12_worker.publish.json"
release_notes: ""
image_name: "debian_12_worker"
topic: "projects/artifact-releaser-prod/topics/gcp-guest-image-release-prod"
on_success:
task: success
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "publish-to-prod-debian-12-worker"
result_state: "success"
start_timestamp: ((.:start-timestamp-ms))
on_failure:
task: failure
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "publish-to-prod-debian-12-worker"
result_state: "failure"
start_timestamp: ((.:start-timestamp-ms))
- name: publish-to-prod-debian-12-worker-arm64
plan:
- get: guest-test-infra
- get: compute-image-tools
- task: generate-timestamp
file: guest-test-infra/concourse/tasks/generate-timestamp.yaml
- load_var: start-timestamp-ms
file: timestamp/timestamp-ms
- get: debian-12-worker-arm64-gcs
passed: [publish-to-testing-debian-12-worker-arm64]
trigger: false
params:
skip_download: "true"
- load_var: source-version
file: debian-12-worker-arm64-gcs/version
- task: generate-version
file: guest-test-infra/concourse/tasks/generate-version.yaml
- load_var: publish-version
file: publish-version/version # produced from generate-version task
- task: publish-debian-12-worker-arm64
file: guest-test-infra/concourse/tasks/gcloud-publish-image.yaml
vars:
gcs_image_path: "gs://artifact-releaser-prod-rtp/debian-worker"
source_version: v((.:source-version))
publish_version: ((.:publish-version))
wf: "debian/debian_12_worker_arm64.publish.json"
release_notes: ""
image_name: "debian_12_worker_arm64"
topic: "projects/artifact-releaser-prod/topics/gcp-guest-image-release-prod"
on_success:
task: success
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "publish-to-prod-debian-12-worker-arm64"
result_state: "success"
start_timestamp: ((.:start-timestamp-ms))
on_failure:
task: failure
file: guest-test-infra/concourse/tasks/publish-job-result.yaml
vars:
pipeline: "debian-worker-image-build"
job: "publish-to-prod-debian-12-worker-arm64"
result_state: "failure"
start_timestamp: ((.:start-timestamp-ms))