Skip to content

Commit 14270c1

Browse files
author
Joseph Palermo
committed
Major overhaul on acceptance test infrastructure and ci pipeline
- Intent is to deploy this to the shared foundational infrastructure ci instance - As there is no longer a long lived bosh director, the acceptance tests now run in a bosh-lite environment directly in the CI container - CI has jobs for acceptance tests, automated weekly bumps for golang packages, automated bumps of postgres packages, and a job to cut a final release - All other CI pipelines and tasks have been removed - Acceptance tests have been updated to go mod and dependencies have been vendored - I've removed the "old" concept from the versions.yml and instead changed the helper to use the release two versions back as the old one. Not 100% sure this is correct behavior (and may cause problems due to v45 being broken), but it seems like testing n-2 to current will always catch problems caused by a major postgres bump.
1 parent e0ca07a commit 14270c1

File tree

1,128 files changed

+487853
-1922
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,128 files changed

+487853
-1922
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,5 @@
2323
/releases/*.tgz
2424
/src/acceptance-tests/bin
2525
/src/acceptance-tests/pkg
26-
/src/acceptance-tests/vendor
2726
/tags
2827
pgats_config.yml

ci/configure.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env bash
2+
3+
set -eu
4+
5+
dir="$(dirname "$0")"
6+
7+
fly -t "${CONCOURSE_TARGET:-bosh}" set-pipeline -p postgres-release -c "$dir/pipeline.yml"

ci/destroy-pipeline

Lines changed: 0 additions & 41 deletions
This file was deleted.

ci/pipeline.yml

Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
jobs:
2+
- name: run-acceptance-tests
3+
serial: true
4+
plan:
5+
- in_parallel:
6+
- get: bosh-warden-cpi-registry-image
7+
- get: postgres-release
8+
trigger: true
9+
- get: stemcell
10+
resource: warden-ubuntu-jammy-stemcell
11+
trigger: true
12+
- get: bbr-github-release
13+
params:
14+
globs:
15+
- bbr-*.tar
16+
- task: run-acceptance-tests
17+
file: postgres-release/ci/tasks/run-acceptance-tests/task.yml
18+
image: bosh-warden-cpi-registry-image
19+
privileged: true
20+
21+
- name: create-final-release
22+
serial: true
23+
plan:
24+
- in_parallel:
25+
- get: postgres-release
26+
passed:
27+
- run-acceptance-tests
28+
- get: bosh-cli-registry-image
29+
- task: create-final-release
30+
file: release-repo/ci/tasks/create-final-release/task.yml
31+
image: bosh-cli-registry-image
32+
params:
33+
RELEASE_NAME: postgres
34+
RELEASE_PRIVATE_YML: |
35+
blobstore:
36+
options:
37+
access_key_id: ((postgres-release-blobstore-user.username))
38+
secret_access_key: ((postgres-release-blobstore-user.password))
39+
- put: postgres-release
40+
params:
41+
repository: postgres-release
42+
tag: postgres-release/version_number
43+
tag_prefix: v
44+
45+
- name: bump-golang-dependencies
46+
serial_groups:
47+
- dependency-bumps
48+
plan:
49+
- in_parallel:
50+
- get: postgres-release
51+
- get: golang-release
52+
- get: golang-release-registry-image
53+
- get: weekly
54+
trigger: true
55+
- task: bump-deps
56+
file: golang-release/ci/tasks/shared/bump-deps.yml
57+
image: golang-release-registry-image
58+
input_mapping:
59+
input_repo: postgres-release
60+
output_mapping:
61+
output_repo: postgres-release
62+
params:
63+
SOURCE_PATH: src/acceptance-tests
64+
- put: postgres-release
65+
params:
66+
repository: postgres-release
67+
rebase: true
68+
69+
- name: bump-packages
70+
serial_groups:
71+
- dependency-bumps
72+
plan:
73+
- in_parallel:
74+
- get: bosh-cli-registry-image
75+
- get: postgres-release
76+
- get: postgres-11-src
77+
trigger: true
78+
- get: postgres-13-src
79+
trigger: true
80+
- get: postgres-15-src
81+
trigger: true
82+
- task: bump-postgres-11-package
83+
file: postgres-release/ci/tasks/bump-postgres-packages.yml
84+
image: bosh-cli-registry-image
85+
input_mapping:
86+
postgres-src: postgres-10-src
87+
params:
88+
MAJOR_VERSION: 11
89+
PRIVATE_YML: |
90+
blobstore:
91+
options:
92+
credentials_source: static
93+
json_key: '((bosh_release_blobs_gcp_credentials_json))'
94+
- task: bump-postgres-13-package
95+
file: postgres-release/ci/tasks/bump-postgres-packages.yml
96+
image: bosh-cli-registry-image
97+
input_mapping:
98+
postgres-src: postgres-13-src
99+
params:
100+
MAJOR_VERSION: 13
101+
PRIVATE_YML: |
102+
blobstore:
103+
options:
104+
credentials_source: static
105+
json_key: '((bosh_release_blobs_gcp_credentials_json))'
106+
- task: bump-postgres-15-package
107+
file: postgres-release/ci/tasks/bump-postgres-packages.yml
108+
image: bosh-cli-registry-image
109+
input_mapping:
110+
postgres-src: postgres-15-src
111+
params:
112+
MAJOR_VERSION: 15
113+
PRIVATE_YML: |
114+
blobstore:
115+
options:
116+
credentials_source: static
117+
json_key: '((bosh_release_blobs_gcp_credentials_json))'
118+
- put: postgres-release
119+
params:
120+
repository: postgres-release
121+
rebase: true
122+
123+
resources:
124+
- name: bbr-github-release
125+
type: github-release
126+
source:
127+
owner: cloudfoundry
128+
repository: bosh-backup-and-restore
129+
130+
- name: bosh-cli-registry-image
131+
type: registry-image
132+
source:
133+
repository: bosh/cli2
134+
username: ((dockerhub_username))
135+
password: ((dockerhub_password))
136+
137+
- name: bosh-warden-cpi-registry-image
138+
type: registry-image
139+
source:
140+
repository: bosh/warden-cpi
141+
username: ((dockerhub_username))
142+
password: ((dockerhub_password))
143+
144+
- name: golang-release
145+
type: git
146+
source:
147+
uri: https://github.com/cloudfoundry/bosh-package-golang-release.git
148+
149+
- name: golang-release-registry-image
150+
type: registry-image
151+
source:
152+
repository: bosh/golang-release
153+
username: ((dockerhub.username))
154+
password: ((dockerhub.password))
155+
156+
- name: postgres-11-src
157+
type: http-resource
158+
source:
159+
index: "https://ftp.postgresql.org/pub/source/"
160+
regex: 'href="v(?P<version>11\.[0-9.]+)/"'
161+
uri: "https://ftp.postgresql.org/pub/source/v{version}/postgresql-{version}.tar.gz"
162+
163+
- name: postgres-13-src
164+
type: http-resource
165+
source:
166+
index: "https://ftp.postgresql.org/pub/source/"
167+
regex: 'href="v(?P<version>13\.[0-9.]+)/"'
168+
uri: "https://ftp.postgresql.org/pub/source/v{version}/postgresql-{version}.tar.gz"
169+
170+
- name: postgres-15-src
171+
type: http-resource
172+
source:
173+
index: "https://ftp.postgresql.org/pub/source/"
174+
regex: 'href="v(?P<version>15\.[0-9.]+)/"'
175+
uri: "https://ftp.postgresql.org/pub/source/v{version}/postgresql-{version}.tar.gz"
176+
177+
- name: postgres-release
178+
type: git
179+
source:
180+
uri: https://github.com/cloudfoundry/postgres-release.git
181+
branch: main
182+
private_key: ((github_deploy_key_postgres-release.private_key))
183+
184+
- name: warden-ubuntu-jammy-stemcell
185+
type: bosh-io-stemcell
186+
source:
187+
name: bosh-warden-boshlite-ubuntu-jammy-go_agent
188+
189+
- name: weekly
190+
type: time
191+
source:
192+
start: 3:00
193+
stop: 4:30
194+
days: [ Saturday ]
195+
196+
resource_types:
197+
- name: http-resource
198+
type: docker-image
199+
source:
200+
repository: aequitas/http-resource
201+

ci/pipelines/acceptance-tests.yml

Lines changed: 0 additions & 48 deletions
This file was deleted.

0 commit comments

Comments
 (0)