Skip to content

Commit 4bdef1a

Browse files
committed
Add image test + Add GitHub workflow for Concourse + Move version control to dedicated tab
1 parent c97a199 commit 4bdef1a

File tree

4 files changed

+117
-75
lines changed

4 files changed

+117
-75
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: Trigger Concourse git resource
2+
on: [ push, workflow_dispatch ]
3+
jobs:
4+
trigger-resource-check:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- name: Trigger resource check
8+
uses: gstackio/trigger-concourse-resource-check-action@v1
9+
with:
10+
concourse-url: https://ci.gstack.io
11+
concourse-team: gk-plat-devs
12+
concourse-pipeline: gk-kong-boshreleases
13+
concourse-resource: git
14+
concourse-webhook-token: ${{ secrets.CONCOURSE_WEBHOOK_TOKEN }}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: Trigger Concourse pull-request resource
2+
on: [ push, pull_request, workflow_dispatch ]
3+
jobs:
4+
trigger-resource-check:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- name: Trigger resource check
8+
uses: gstackio/trigger-concourse-resource-check-action@v1
9+
with:
10+
concourse-url: https://ci.gstack.io
11+
concourse-team: gk-plat-devs
12+
concourse-pipeline: gk-kong-boshreleases
13+
concourse-resource: git-pull-requests
14+
concourse-webhook-token: ${{ secrets.CONCOURSE_WEBHOOK_TOKEN }}

ci/pipeline.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ meta:
4545
access_token: (( param "Please generate a Personal Access Token and specify it here" ))
4646

4747
dockerhub:
48-
email: (( param "Please specify the email address for your Dockerhub account" ))
4948
username: (( param "Please specify the username for your Dockerhub account" ))
5049
password: (( param "Please specify the password for your Dockerhub account" ))
5150
repository: (( param "Please specify the name of the image (repo/name) that you are building" ))

ci/settings.yml

Lines changed: 89 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -16,75 +16,7 @@ meta:
1616
username: ((docker-registry-username))
1717
password: ((docker-registry-password))
1818

19-
tests:
20-
cmd: bash
21-
args:
22-
- -c
23-
- |
24-
set -ueo pipefail -x
25-
26-
failure="false"
27-
28-
version_family="1.1.1"
29-
old_version="1.1.1j"
30-
31-
latest_version_json=$(
32-
/opt/resource/in <<EOF
33-
{ "source": { "family": "${version_family}" } }
34-
EOF
35-
)
36-
latest_version=$(jq --raw-output '.version.version' <<< "${latest_version_json}")
37-
38-
if [[ ${latest_version} == ${version_family}* ]]; then
39-
echo >&2 "FAIL: expected version to start with '${version_family}', but got '${latest_version}'."
40-
failure="true"
41-
fi
42-
43-
mkdir "old"
44-
/opt/resource/check "old" <<EOF
45-
{ "version": { "version": "${old_version}" },
46-
"source": { "family": "${version_family}" }
47-
}
48-
EOF
49-
50-
if [[ ! -f "old/openssl-${old_version}.tar.gz" ]]; then
51-
>&2 echo "FAIL: expected to found a 'openssl-${old_version}.tar.gz' tarball, but got:"
52-
>&2 ls -la "old/"
53-
failure="true"
54-
fi
55-
56-
if [[ ! -s "old/openssl-${old_version}.tar.gz" ]]; then
57-
echo >&2 "FAIL: expected tarball not to be empty, but it's of 0 size."
58-
>&2 ls -la "old/"
59-
failure="true"
60-
fi
61-
62-
mkdir "current"
63-
/opt/resource/check "current" <<EOF
64-
{ ${latest_version_json},
65-
"source": { "family": "${version_family}" }
66-
}
67-
EOF
68-
69-
if [[ ! -f "current/openssl-${latest_version}.tar.gz" ]]; then
70-
>&2 echo "FAIL: expected to found a 'openssl-${latest_version}.tar.gz' tarball, but got:"
71-
>&2 ls -la "current/"
72-
failure="true"
73-
fi
74-
75-
if [[ ! -s "current/openssl-${latest_version}.tar.gz" ]]; then
76-
echo >&2 "FAIL: expected tarball not to be empty, but it's of 0 size."
77-
>&2 ls -la "current/"
78-
failure="true"
79-
fi
80-
81-
if [[ ${failure} == true ]]; then
82-
exit 1
83-
fi
84-
exit 0
85-
8619
dockerhub:
87-
email: (( prune ))
8820
username: ((docker-registry-username))
8921
password: ((docker-registry-password))
9022
repository: (( concat "harbor.ci.gstack.io/gstack/" meta.name ))
@@ -109,24 +41,99 @@ meta:
10941
channel: "#pipelines-notifications"
11042
test_fail_msg: '(( concat ":concourse-fail: <" meta.url "/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME| Failed " meta.name " tests! Click for details.>" ))'
11143

44+
groups:
45+
- name: (( grab meta.name ))
46+
jobs:
47+
- (( delete "major" ))
48+
- (( delete "minor" ))
49+
- (( append ))
50+
- test
51+
- name: version
52+
jobs:
53+
- major
54+
- minor
55+
11256
jobs:
11357

11458
- name: test
115-
public: true
11659
serial: true
11760
plan:
11861
- in_parallel:
119-
- { get: edge, passed: [build], trigger: true }
120-
- { get: source, passed: [build] }
62+
- { get: edge, passed: [ build ], trigger: true }
63+
- { get: git, passed: [ build ] }
12164
- task: test-image
12265
image: edge
12366
config:
12467
platform: linux
12568
inputs:
126-
- name: source
69+
- name: git
12770
run:
128-
path: (( grab meta.tests.cmd ))
129-
args: (( grab meta.tests.args ))
71+
path: bash
72+
args:
73+
- -c
74+
- |
75+
set -ueo pipefail -x
76+
77+
failure="false"
78+
79+
version_family="1.1.1"
80+
old_version="1.1.1j"
81+
82+
latest_version_json=$(
83+
/opt/resource/check <<EOF
84+
{ "source": { "family": "${version_family}" } }
85+
EOF
86+
)
87+
latest_version=$(jq --raw-output '.[0].version' <<< "${latest_version_json}")
88+
89+
if [[ ${latest_version} == ${version_family}* ]]; then
90+
echo >&2 "FAIL: expected version to start with '${version_family}', but got '${latest_version}'."
91+
failure="true"
92+
fi
93+
94+
mkdir "old"
95+
/opt/resource/in "old" <<EOF
96+
{ "version": { "version": "${old_version}" },
97+
"source": { "family": "${version_family}" }
98+
}
99+
EOF
100+
101+
if [[ ! -f "old/openssl-${old_version}.tar.gz" ]]; then
102+
>&2 echo "FAIL: expected to found a 'openssl-${old_version}.tar.gz' tarball, but got:"
103+
>&2 ls -la "old/"
104+
failure="true"
105+
fi
106+
107+
if [[ ! -s "old/openssl-${old_version}.tar.gz" ]]; then
108+
echo >&2 "FAIL: expected tarball not to be empty, but it's of 0 size."
109+
>&2 ls -la "old/"
110+
failure="true"
111+
fi
112+
113+
mkdir "current"
114+
/opt/resource/in "current" <<EOF
115+
{ ${latest_version_json},
116+
"source": { "family": "${version_family}" }
117+
}
118+
EOF
119+
120+
if [[ ! -f "current/openssl-${latest_version}.tar.gz" ]]; then
121+
>&2 echo "FAIL: expected to found a 'openssl-${latest_version}.tar.gz' tarball, but got:"
122+
>&2 ls -la "current/"
123+
failure="true"
124+
fi
125+
126+
if [[ ! -s "current/openssl-${latest_version}.tar.gz" ]]; then
127+
echo >&2 "FAIL: expected tarball not to be empty, but it's of 0 size."
128+
>&2 ls -la "current/"
129+
failure="true"
130+
fi
131+
132+
if [[ ${failure} == true ]]; then
133+
exit 1
134+
fi
135+
exit 0
136+
130137
on_failure:
131138
put: notify
132139
params:
@@ -135,6 +142,14 @@ jobs:
135142
icon_url: (( grab meta.slack.icon ))
136143
text: (( grab meta.slack.test_fail_msg ))
137144

145+
- name: promote
146+
plan:
147+
- (( inline ))
148+
- in_parallel:
149+
- (( merge on get ))
150+
- { get: edge, passed: [ (( replace )), test ] }
151+
- { get: git, passed: [ (( replace )), test ] }
152+
138153
resources:
139154

140155
- name: version

0 commit comments

Comments
 (0)