diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
index 7763981d1e..5fd2315a11 100644
--- a/.github/workflows/go.yml
+++ b/.github/workflows/go.yml
@@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- - uses: actions/setup-go@v6
+ - uses: actions/setup-go@v7
with:
go-version-file: acceptance-tests/go.mod
- uses: golangci/golangci-lint-action@v9
diff --git a/acceptance-tests/go.mod b/acceptance-tests/go.mod
index 26e7fae7a4..5ec64d35a5 100644
--- a/acceptance-tests/go.mod
+++ b/acceptance-tests/go.mod
@@ -3,7 +3,7 @@ module github.com/cloudfoundry/bosh-linux-stemcell-builder/acceptance-tests
go 1.25.0
require (
- github.com/cloudfoundry/bosh-utils v0.0.628
+ github.com/cloudfoundry/bosh-utils v0.0.629
github.com/onsi/ginkgo/v2 v2.32.0
github.com/onsi/gomega v1.42.1
gopkg.in/yaml.v2 v2.4.0
diff --git a/acceptance-tests/go.sum b/acceptance-tests/go.sum
index ff4104833b..eed6ccf94a 100644
--- a/acceptance-tests/go.sum
+++ b/acceptance-tests/go.sum
@@ -2,8 +2,8 @@ github.com/Masterminds/semver/v3 v3.5.0 h1:kQceYJfbupGfZOKZQg0kou0DgAKhzDg2NZPAw
github.com/Masterminds/semver/v3 v3.5.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
github.com/bmatcuk/doublestar v1.3.4 h1:gPypJ5xD31uhX6Tf54sDPUOBXTqKH4c9aPY66CyQrS0=
github.com/bmatcuk/doublestar v1.3.4/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE=
-github.com/cloudfoundry/bosh-utils v0.0.628 h1:mBkEytkq1aUx1Dq31utvchtVLeUngsIcV9QHgxjMttk=
-github.com/cloudfoundry/bosh-utils v0.0.628/go.mod h1:Oi1Or7wk6TljEEfyomf6xdKhkuvTpkrnEvdDd04/2Tc=
+github.com/cloudfoundry/bosh-utils v0.0.629 h1:6wubE+dKZ7Poo0OwEjXtidDY73rMBT/3mzNMyMaqSuY=
+github.com/cloudfoundry/bosh-utils v0.0.629/go.mod h1:Xn5ynPVGqJX/mKQSqcAYCVF6XlCEpcWu2rkC/kGxq+4=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gkampitakis/ciinfo v0.3.2 h1:JcuOPk8ZU7nZQjdUhctuhQofk7BGHuIy0c9Ez8BNhXs=
diff --git a/acceptance-tests/vendor/modules.txt b/acceptance-tests/vendor/modules.txt
index 9b9f2e6ab3..e9bc5afbd1 100644
--- a/acceptance-tests/vendor/modules.txt
+++ b/acceptance-tests/vendor/modules.txt
@@ -4,7 +4,7 @@ github.com/Masterminds/semver/v3
# github.com/bmatcuk/doublestar v1.3.4
## explicit; go 1.12
github.com/bmatcuk/doublestar
-# github.com/cloudfoundry/bosh-utils v0.0.628
+# github.com/cloudfoundry/bosh-utils v0.0.629
## explicit; go 1.25.0
github.com/cloudfoundry/bosh-utils/errors
github.com/cloudfoundry/bosh-utils/logger
diff --git a/ci/pipeline-template.yml b/ci/pipeline-template.yml
index c10d088aa8..dd481601df 100644
--- a/ci/pipeline-template.yml
+++ b/ci/pipeline-template.yml
@@ -1453,6 +1453,8 @@ resources:
vars:
gce_credentials_json: ((gcp_json_key))
gce_project_id: ((gcp_project_id))
+ gce_region: europe-north2
+ gce_zone: europe-north2-a
type: terraform_type
- name: base-oss-google-ubuntu-stemcell
diff --git a/ci/tasks/light-aws/cleanup-ami.sh b/ci/tasks/light-aws/cleanup-ami.sh
index 9d21e2f041..0286c3a9d5 100755
--- a/ci/tasks/light-aws/cleanup-ami.sh
+++ b/ci/tasks/light-aws/cleanup-ami.sh
@@ -30,6 +30,28 @@ if [ -n "${ami_role_arn:-}" ]; then
export AWS_PROFILE=resource_account
fi
+# Every stemcell pipeline runs the published sweep against the same account, so two
+# pipelines can select the same AMI before either has deleted it. This handles
+# expected potential errors that could occur on a collision.
+run_tolerating_missing() {
+ local output
+ if output="$("$@" 2>&1)"; then
+ [ -n "${output}" ] && printf "%s\n" "${output}"
+ return 0
+ fi
+
+ case "${output}" in
+ *InvalidAMIID.Unavailable*|*InvalidAMIID.NotFound*|*InvalidSnapshot.NotFound*|*InvalidSnapshot.InUse*)
+ echo " already deleted by another run, skipping"
+ return 0
+ ;;
+ *)
+ printf "%s\n" "${output}" >&2
+ return 1
+ ;;
+ esac
+}
+
past_due=$(date --date="${ami_older_than_days} days ago" +"%Y-%m-%d")
# shellcheck disable=SC2016
past_due_query='sort_by(Images,&CreationDate)[?CreationDate<`'"${past_due}"'`].{ImageId: ImageId, date:CreationDate, SnapshotId: BlockDeviceMappings[0].Ebs.SnapshotId,Version: Tags[?Key==`name`]|[0].Value}'
@@ -59,16 +81,6 @@ for region in ${ami_destinations}; do
ami_list=$(jq -s '.[0] + .[1]' <(echo "${ami_list}") <(echo "${results}"))
fi
- if [ -n "${snapshot_id:-}" ]; then
- results=$(aws ec2 describe-images \
- --owners self \
- --output json \
- --region "${region}" \
- --filters "Name=block-device-mapping.snapshot-id,Values=${snapshot_id}" \
- --query "${past_due_query}" | jq 'reverse | del(.[range(env.ami_keep_latest|tonumber)])')
- ami_list=$(jq -s '.[0] + .[1]' <(echo "${ami_list}") <(echo "${results}"))
- fi
-
# 'ami_list' is a json array of objects, each object is an ami and its snapshot
for row in $(echo "${ami_list}" | jq -r '.[] | @base64'); do
_jq() {
@@ -83,14 +95,12 @@ for region in ${ami_destinations}; do
Snapshot id: $(_jq '.SnapshotId')
"
- aws ec2 deregister-image \
+ run_tolerating_missing aws ec2 deregister-image \
--image-id "$(_jq '.ImageId')" \
--region "${region}"
- if [ "${snapshot_id:-}" != "$(_jq '.SnapshotId')" ]; then
- aws ec2 delete-snapshot \
- --snapshot-id "$(_jq '.SnapshotId')" \
- --region "${region}"
- fi
+ run_tolerating_missing aws ec2 delete-snapshot \
+ --snapshot-id "$(_jq '.SnapshotId')" \
+ --region "${region}"
done
done
diff --git a/ci/tasks/light-aws/cleanup-ami.yml b/ci/tasks/light-aws/cleanup-ami.yml
index e30236167c..ff0cbde1c4 100644
--- a/ci/tasks/light-aws/cleanup-ami.yml
+++ b/ci/tasks/light-aws/cleanup-ami.yml
@@ -14,5 +14,4 @@ params:
ami_older_than_days: "60" # Number of days AMI to keep excluding those currently being running
ami_keep_latest: "5" # Number of previous AMI to keep excluding those currently being running
os_name: "" # e.g ubuntu-jammy
- snapshot_id: "" # Snapshot id to delete
remove_public_images: "false"
diff --git a/ci/tasks/light-google/skeletal-deployment.yml b/ci/tasks/light-google/skeletal-deployment.yml
index a59420aea6..20939feb0c 100644
--- a/ci/tasks/light-google/skeletal-deployment.yml
+++ b/ci/tasks/light-google/skeletal-deployment.yml
@@ -19,7 +19,7 @@ resource_pools:
stemcell:
url: file://assets/stemcell.tgz
cloud_properties:
- machine_type: n1-standard-2
+ machine_type: e2-standard-2
root_disk_type: pd-standard
zone: ((gce_zone))
tags:
diff --git a/image-metalinks/ubuntu-jammy/ubuntu-jammy.meta4 b/image-metalinks/ubuntu-jammy/ubuntu-jammy.meta4
index 267f0893e2..1ee058b311 100644
--- a/image-metalinks/ubuntu-jammy/ubuntu-jammy.meta4
+++ b/image-metalinks/ubuntu-jammy/ubuntu-jammy.meta4
@@ -1,22 +1,22 @@
- 951011bb01835a4ac40d63fe13538ff6243f6b8d7c8bff98f1a8e62ada0300e79b84555c4190bad29d99f7394ca233f69e3bae404c26240e5e07fe6efa973b48
- 9f3b56e8de841095f5dd09a92ef5c1c7f4ce4d16c5da0e95cdd0affd437eb745
- d823cd967b22449c556913b8932d89f3b7419ded
- c7578439290a5bd18fb3255deb7c5ada
- 435388237
+ fc540c5bfb1273925a6a1531386e38171ec56788ff92f428948ca928b051c26d1a0904ebe7d27eb7b0aa5b07dedd38a08f671462162b511e388108e0b3d31c7e
+ 6584f2bdb264fd6bd515df3d42733fcee167f56c5586dd47bd3d17aa56df7429
+ 79b3a508e86c2ba3c93a2ec1e4660db1a9a56a22
+ dd274eb02ba069d3e17588b51df72be7
+ 437750690
https://storage.googleapis.com/bosh-os-images/ubuntu-jammy/ubuntu-jammy.tgz
- 1126.0.0
+ 1151.0.0
- 55d505cb22a62c4636b9d2912b3bd8f7683d5b68ac17ec22c0a2b5d71775113edfc0a4041de49dd78fc2251260f850404d43533e5f8a7ae614e1a3d869ea0239
- 70100cafaa448fc3c4c9a7e47574325e2eb79b0e4d0ae5d4b7cc10b57eeb9ea6
- 68d551392fb8407b6cca61445fa9cdad289a4c42
- 428bf554042b2610eb2e5bbe0ea92865
- 52717
+ cae949878e6edcc1dcf9933ccf0e3cb3fa720b325f78f1e0d1b8fb7139401b25204b5c3fea731d99a233cd85e9f2f32a115e858b3da1234bb7316fb4e42c4c6f
+ 3d3767c9c22fdb909908e24d147e4fd950e2182e440dd14837a9e0f5ad49cd22
+ 8b3ae300f323b9df29a97bc23720267fbb127e1f
+ 2ddbcaf20cac862372c7ea7e122eeb6b
+ 7421
https://storage.googleapis.com/bosh-os-images/ubuntu-jammy/usn-log.json
- 1126.0.0
+ 1151.0.0
metalink-repository-resource/0.0.0
- 2026-07-10T22:40:36.805978443Z
+ 2026-07-30T08:22:16.074064248Z
diff --git a/image-metalinks/ubuntu-noble/ubuntu-noble.meta4 b/image-metalinks/ubuntu-noble/ubuntu-noble.meta4
index 4e129822d9..3cf16eefca 100644
--- a/image-metalinks/ubuntu-noble/ubuntu-noble.meta4
+++ b/image-metalinks/ubuntu-noble/ubuntu-noble.meta4
@@ -1,12 +1,12 @@
- a7ab0d00508d2fb74d16c78ead5e67be34979372373c4d822ce5f5149daf30d659959301e4dc9911f6dcd451b7d681647254b63462098df38ec0c5f6f806f19c
- d123de2ca4a08279abfd7d15ca7f3a6aba6976a56de2cd4a9470ea40a65389c9
- ba4a5cca7b05b289814dba4e917173f30bf6220e
- 0cd2853795808e3db74afc20094e381d
- 376920548
+ 60d798769ff7b26c2cdccd919a1bb9fa30dfa1a82723a11ba2377ab4d9c3c45a68ca5aff3dccd89bbe2cccf0397e26665da71928df9f1475e63e1ceb9f5697fd
+ 5e852fb3dc0d24aae6801802f2be518e5d0cf5ab5f2172d7edf412c34ddcc498
+ 14c6a917fc4200d1cc1cd2ecd8cd65f0e820f7b7
+ 526d2f7acc41bf4a48d29416fe6a7c6b
+ 377014189
https://storage.googleapis.com/bosh-os-images/ubuntu-noble/ubuntu-noble.tgz
- 183.0.0
+ 191.0.0
894a1a9a4b8c2aa7519d63d2986206d3d81e6ba75384231ade8a43c2b1a9eeb6974588270186e2420780eccbfa831eedfd7232dc3fba0bb434c821945135406f
@@ -15,8 +15,8 @@
eaf6da3f1a78a7f5cec3809adbc652aa
68528
https://storage.googleapis.com/bosh-os-images/ubuntu-noble/usn-log.json
- 183.0.0
+ 191.0.0
metalink-repository-resource/0.0.0
- 2026-07-23T14:57:50.107392277Z
+ 2026-07-30T16:42:02.240365569Z
diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.sha256sum b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.sha256sum
index bd7b8b77aa..573dbb7888 100644
--- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.sha256sum
+++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.sha256sum
@@ -1 +1 @@
-42f3618c873af372212be3e839bb18d828153bcf75ab36f4a3c4e79f7fa27922
+1e842139ef6eee303c5a30486f352fc510fe732f2dc5446c5d2403ca47cbf88a
diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.url b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.url
index e263054035..59af87491c 100644
--- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.url
+++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.url
@@ -1 +1 @@
-https://bosh-azure-storage-cli-artifacts.s3.us-east-1.amazonaws.com/azure-storage-cli-0.0.247-linux-amd64
+https://bosh-azure-storage-cli-artifacts.s3.us-east-1.amazonaws.com/azure-storage-cli-0.0.248-linux-amd64
diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.version b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.version
index 6aa687e148..764cb07239 100644
--- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.version
+++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.version
@@ -1 +1 @@
-0.0.247
+0.0.248
diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.sha256sum b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.sha256sum
index 4fc266273f..7a51e4b7aa 100644
--- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.sha256sum
+++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.sha256sum
@@ -1 +1 @@
-368ec6c088228d10447cf50cb79843d1cae32f2e7955dea50306902a722217ea
+2b1b3ff893bee47d61b456128b42d667d797a4ed978b0b7d22687cbd6ee2ab8e
diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.url b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.url
index f6bf01276f..e4bcb6bfc0 100644
--- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.url
+++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.url
@@ -1 +1 @@
-https://bosh-davcli-artifacts.s3.us-east-1.amazonaws.com/davcli-0.0.491-linux-amd64
+https://bosh-davcli-artifacts.s3.us-east-1.amazonaws.com/davcli-0.0.492-linux-amd64
diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.version b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.version
index 2cb2e13642..adcd67ce7e 100644
--- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.version
+++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.version
@@ -1 +1 @@
-0.0.491
+0.0.492
diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.sha256sum b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.sha256sum
index 6628655c22..d621d043e3 100644
--- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.sha256sum
+++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.sha256sum
@@ -1 +1 @@
-9b51524789ac9964d83c45dfbb1fc5ae3cf242f7406367be0b86b2b00df121df
+d4a0848cb12770dd4689365d68a931f4ace95c31e7029cc521f3cffe1454b368
diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.url b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.url
index 9a4f4acc08..df1f420391 100644
--- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.url
+++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.url
@@ -1 +1 @@
-https://bosh-gcscli-artifacts.s3.us-east-1.amazonaws.com/bosh-gcscli-0.0.397-linux-amd64
+https://bosh-gcscli-artifacts.s3.us-east-1.amazonaws.com/bosh-gcscli-0.0.398-linux-amd64
diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.version b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.version
index 6b771b3aa5..4558040cb4 100644
--- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.version
+++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.version
@@ -1 +1 @@
-0.0.397
+0.0.398
diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.sha256sum b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.sha256sum
index c8d1f6a25e..69258b0c18 100644
--- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.sha256sum
+++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.sha256sum
@@ -1 +1 @@
-eaf3d1d2834e67e8dc012e19224dcc159de521316cf5f6fdb5eb597c23d5bc8f
+acecf97845c65fee0bd20cf7e4bc8e89ce35e85f1833bed4d87ba192daa5e240
diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.url b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.url
index 10e8f38e40..e4d157c286 100644
--- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.url
+++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.url
@@ -1 +1 @@
-https://bosh-s3cli-artifacts.s3.us-east-1.amazonaws.com/s3cli-0.0.420-linux-amd64
+https://bosh-s3cli-artifacts.s3.us-east-1.amazonaws.com/s3cli-0.0.422-linux-amd64
diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.version b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.version
index 4a9f69fe4b..a55f0dd2bc 100644
--- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.version
+++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.version
@@ -1 +1 @@
-0.0.420
+0.0.422