Use new /v1/:type/:name/metadata in repipe script
Now, we automagically track github releases for github-hosted stuff, and bosh-io releases for bosh.io-hosted stuff.
This commit is contained in:
parent
19d08193e7
commit
aded7ce844
|
@ -1 +1,2 @@
|
|||
/genesis-index
|
||||
.deploy.yml
|
||||
|
|
12
README.md
12
README.md
|
@ -65,6 +65,12 @@ GET /v1/release
|
|||
GET /v1/release/:name
|
||||
```
|
||||
|
||||
## Get Release Metadata
|
||||
|
||||
```
|
||||
GET /v1/release/:name/metadata
|
||||
```
|
||||
|
||||
## Get The Latest Release Version
|
||||
|
||||
```
|
||||
|
@ -125,6 +131,12 @@ GET /v1/stemcell
|
|||
GET /v1/stemcell/:name
|
||||
```
|
||||
|
||||
## Get Stemcell Metadata
|
||||
|
||||
```
|
||||
GET /v1/stemcell/:name/metadata
|
||||
```
|
||||
|
||||
## Get The Latest Stemcell Version
|
||||
|
||||
```
|
||||
|
|
|
@ -61,6 +61,13 @@ func (api ReleaseAPI) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
respond(w, err, 200, release)
|
||||
return
|
||||
|
||||
case match(r, `GET /v1/release/[^/]+/metadata`):
|
||||
name := extract(r, `/v1/release/([^/]+)/metadata`)
|
||||
log.Debugf("retrieving latest version of release '%s'", name)
|
||||
release, err := FindRelease(api.db, name)
|
||||
respond(w, err, 200, release)
|
||||
return
|
||||
|
||||
case match(r, `GET /v1/release/[^/]+/latest`):
|
||||
name := extract(r, `/v1/release/([^/]+)/latest$`)
|
||||
log.Debugf("retrieving latest version of release '%s'", name)
|
||||
|
|
|
@ -61,6 +61,13 @@ func (api StemcellAPI) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
respond(w, err, 200, stemcell)
|
||||
return
|
||||
|
||||
case match(r, `GET /v1/stemcell/[^/]+/metadata`):
|
||||
name := extract(r, `/v1/stemcell/([^/]+)/metadata`)
|
||||
log.Debugf("retrieving latest version of stemcell '%s'", name)
|
||||
stemcell, err := FindStemcell(api.db, name)
|
||||
respond(w, err, 200, stemcell)
|
||||
return
|
||||
|
||||
case match(r, `GET /v1/stemcell/[^/]+/latest`):
|
||||
name := extract(r, `/v1/stemcell/([^/]+)/latest$`)
|
||||
log.Debugf("retrieving latest version of stemcell '%s'", name)
|
||||
|
|
|
@ -4,6 +4,8 @@ meta:
|
|||
index: https://genesis.starkandwayne.com
|
||||
username: (( vault "secret/pipelines/genesis-index/auth:username" ))
|
||||
password: (( vault "secret/pipelines/genesis-index/auth:password" ))
|
||||
github:
|
||||
access_token: (( vault "secret/pipelines/genesis-index/github:token" ))
|
||||
|
||||
resource_types:
|
||||
- name: script
|
||||
|
|
|
@ -22,7 +22,7 @@ if [[ -z ${SUBJECT} ]]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
VERSION=$(cat ${CHECK_TYPE}/version)
|
||||
VERSION=$(cat ${CHECK_TYPE}/version | sed -e 's/^v//')
|
||||
|
||||
echo
|
||||
echo "Updating the index for ${CHECK_TYPE} ${SUBJECT} v${VERSION}"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
groups:
|
||||
- jobs:
|
||||
- bind9
|
||||
- bolo
|
||||
- bosh-aws-cpi
|
||||
- bosh-azure-cpi
|
||||
- bosh-openstack-cpi
|
||||
|
@ -57,6 +58,33 @@ jobs:
|
|||
task: update-index
|
||||
public: true
|
||||
serial: false
|
||||
- name: bolo
|
||||
plan:
|
||||
- get: bolo
|
||||
trigger: true
|
||||
- get: version-check-script
|
||||
- config:
|
||||
image_resource:
|
||||
source:
|
||||
repository: starkandwayne/concourse
|
||||
type: docker-image
|
||||
inputs:
|
||||
- name: bolo
|
||||
path: release
|
||||
- name: version-check-script
|
||||
path: run
|
||||
params:
|
||||
CHECK_TYPE: release
|
||||
GENESIS_CREDS: REDACTED:REDACTED
|
||||
GENESIS_INDEX: https://genesis.starkandwayne.com
|
||||
SUBJECT: bolo
|
||||
platform: linux
|
||||
run:
|
||||
args: []
|
||||
path: ./run/check-version
|
||||
task: update-index
|
||||
public: true
|
||||
serial: false
|
||||
- name: bosh-aws-cpi
|
||||
plan:
|
||||
- get: bosh-aws-cpi
|
||||
|
@ -737,6 +765,8 @@ meta:
|
|||
index: https://genesis.starkandwayne.com
|
||||
password: REDACTED
|
||||
username: REDACTED
|
||||
github:
|
||||
access_token: REDACTED
|
||||
resource_types:
|
||||
- name: script
|
||||
source:
|
||||
|
@ -770,7 +800,7 @@ resources:
|
|||
exit 1
|
||||
fi
|
||||
|
||||
VERSION=$(cat ${CHECK_TYPE}/version)
|
||||
VERSION=$(cat ${CHECK_TYPE}/version | sed -e 's/^v//')
|
||||
|
||||
echo
|
||||
echo "Updating the index for ${CHECK_TYPE} ${SUBJECT} v${VERSION}"
|
||||
|
@ -790,6 +820,12 @@ resources:
|
|||
source:
|
||||
repository: cloudfoundry-community/bind9-boshrelease
|
||||
type: bosh-io-release
|
||||
- name: bolo
|
||||
source:
|
||||
access_token: REDACTED
|
||||
repository: bolo-boshrelease
|
||||
user: cloudfoundry-community
|
||||
type: github-release
|
||||
- name: bosh-aws-cpi
|
||||
source:
|
||||
repository: cloudfoundry-incubator/bosh-aws-cpi-release
|
||||
|
|
|
@ -9,12 +9,12 @@ pushd $PIPELINE >/dev/null
|
|||
rm -rf releases stemcells
|
||||
mkdir releases stemcells
|
||||
|
||||
# FIXME: use the url endpoint (see TODO)
|
||||
for repo in $(cat track.releases); do
|
||||
release=${repo##*/}
|
||||
release=${release%-boshrelease}
|
||||
release=${release%-release}
|
||||
cat >releases/${release}.yml <<EOF
|
||||
for release in $(curl -Lsk ${GENESIS_INDEX}/v1/release | jq -r .[]); do
|
||||
url=$(curl -Lsk ${GENESIS_INDEX}/v1/release/${release}/metadata | jq -r .url)
|
||||
if echo $url | grep -q "^https://bosh.io/"; then
|
||||
repo=${url#https://bosh.io/d/github.com/}
|
||||
repo=${repo%?v=*}
|
||||
cat >releases/${release}.yml <<EOF # {{{
|
||||
---
|
||||
# auto-generated by pipeline/repipe script
|
||||
|
||||
|
@ -60,10 +60,68 @@ jobs:
|
|||
CHECK_TYPE: release
|
||||
SUBJECT: ${release}
|
||||
EOF
|
||||
# }}}
|
||||
|
||||
elif echo $url | grep -q "^https://github.com/"; then
|
||||
user=${url#https://github.com/}
|
||||
user=${user%%/*}
|
||||
|
||||
repo=${url#https://github.com/${user}/}
|
||||
repo=${repo%%/*}
|
||||
cat >releases/${release}.yml <<EOF # {{{
|
||||
---
|
||||
# auto-generated by pipeline/repipe script
|
||||
|
||||
groups:
|
||||
- name: releases
|
||||
jobs:
|
||||
- (( append ))
|
||||
- ${release}
|
||||
|
||||
resources:
|
||||
- name: ${release}
|
||||
type: github-release
|
||||
source:
|
||||
user: ${user}
|
||||
repository: ${repo}
|
||||
access_token: (( grab meta.github.access_token ))
|
||||
|
||||
jobs:
|
||||
- name: ${release}
|
||||
public: true
|
||||
serial: false
|
||||
plan:
|
||||
- get: ${release}
|
||||
trigger: true
|
||||
- get: version-check-script
|
||||
|
||||
- task: update-index
|
||||
config:
|
||||
platform: linux
|
||||
image_resource:
|
||||
type: docker-image
|
||||
source:
|
||||
repository: starkandwayne/concourse
|
||||
inputs:
|
||||
- name: ${release}
|
||||
path: release
|
||||
- name: version-check-script
|
||||
path: run
|
||||
run:
|
||||
path: ./run/check-version
|
||||
args: []
|
||||
params:
|
||||
GENESIS_INDEX: (( grab meta.genesis.index ))
|
||||
GENESIS_CREDS: (( concat meta.genesis.username ":" meta.genesis.password ))
|
||||
CHECK_TYPE: release
|
||||
SUBJECT: ${release}
|
||||
EOF
|
||||
# }}}
|
||||
fi
|
||||
done
|
||||
|
||||
for stemcell in $(curl -Lsk ${GENESIS_INDEX}/v1/stemcell | jq -r .[]); do
|
||||
cat >stemcells/${stemcell}.yml <<EOF
|
||||
cat >stemcells/${stemcell}.yml <<EOF # {{{
|
||||
---
|
||||
# auto-generated by pipeline/repipe script
|
||||
|
||||
|
@ -109,6 +167,7 @@ jobs:
|
|||
CHECK_TYPE: stemcell
|
||||
SUBJECT: ${stemcell}
|
||||
EOF
|
||||
# }}}
|
||||
done
|
||||
|
||||
trap "rm -f ${PIPELINE}/.deploy.yml" INT QUIT TERM EXIT
|
||||
|
|
2
seed
2
seed
|
@ -36,7 +36,7 @@ done
|
|||
|
||||
for cpi in aws azure openstack rackhd softlayer vcloud vsphere
|
||||
do
|
||||
POST '/v1/release' '{"name":"bosh-'${cpi}'-cpi","url":"https://bosh.io/d/github.com/cloudfoundry-incubator/bosh-'${cpi}'-release?v={{version}}"}'
|
||||
POST '/v1/release' '{"name":"bosh-'${cpi}'-cpi","url":"https://bosh.io/d/github.com/cloudfoundry-incubator/bosh-'${cpi}'-cpi-release?v={{version}}"}'
|
||||
done
|
||||
|
||||
for release in \
|
||||
|
|
Loading…
Reference in New Issue