-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathshippable.yml
104 lines (102 loc) · 4.16 KB
/
shippable.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
resources:
- name: node_sh_repo
type: gitRepo
integration: avinci_gh
versionTemplate:
sourceName: shippable/node
branch: master
jobs:
- name: node_file_pack
type: runSh
triggerMode: parallel
dependencyMode: strict
steps:
- IN: node_sh_repo
- IN: shipit_bits_access_cli
switch: off
- TASK:
name: node_pack
runtime:
options:
env:
- CONTEXT: "node"
- TAG_VER: "master"
- S3_URL: "s3://shippable-artifacts/node"
- WEB_URL: "https://s3.amazonaws.com/shippable-artifacts/node"
- RES_REPO: "node_sh_repo"
script:
- REPO_COMMIT=$(shipctl get_resource_version_key "$RES_REPO" "shaData.commitSha")
- pushd $(shipctl get_resource_state "$RES_REPO")
- |
TAR_FILENAME="$CONTEXT-$TAG_VER.tar.gz"
git archive --format=tar.gz --output="/tmp/$TAR_FILENAME" --prefix=$CONTEXT/ $TAG_VER
aws s3 cp --acl public-read "/tmp/$TAR_FILENAME" "$S3_URL/$TAG_VER/"
- |
ZIP_FILENAME="$CONTEXT-$TAG_VER.zip"
git archive --format=zip --output="/tmp/$ZIP_FILENAME" $TAG_VER
aws s3 cp --acl public-read "/tmp/$ZIP_FILENAME" "$S3_URL/$TAG_VER/"
on_success:
script:
- shipctl put_resource_state_multi $JOB_NAME "versionName=$REPO_COMMIT" "TAG_VER=$TAG_VER" "FILE_REPO_COMMIT_SHA=$REPO_COMMIT" "WEB_URL=$WEB_URL" "S3_URL=$S3_URL" "TAR_FILENAME=$TAR_FILENAME" "ZIP_FILENAME=$ZIP_FILENAME"
- name: node_repo_file_tag
type: runSh
triggerMode: parallel
dependencyMode: strict
steps:
- IN: prod_release
- IN: node_file_pack
switch: off
- IN: node_sh_repo
switch: off
- IN: shipit_bits_access_cli
switch: off
- IN: shipit_gh_ssh
switch: off
- TASK:
name: node_tag
runtime:
options:
env:
- RES_VER: "prod_release"
- CONTEXT: "node"
- RES_REPO: "node_sh_repo"
- RES_FILE: "node_file_pack"
- GIT_PATH: "[email protected]:Shippable/node.git"
script:
- TAG_VER=$(shipctl get_resource_version_key "$RES_VER" "versionName")
- |
REPO_COMMIT=$(shipctl get_resource_version_key "$RES_FILE" "FILE_REPO_COMMIT_SHA")
UP_TAR_FILENAME=$(shipctl get_resource_version_key "$RES_FILE" "TAR_FILENAME")
UP_ZIP_FILENAME=$(shipctl get_resource_version_key "$RES_FILE" "ZIP_FILENAME")
UP_TAG_VER=$(shipctl get_resource_version_key "$RES_FILE" "TAG_VER")
S3_URL=$(shipctl get_resource_version_key "$RES_FILE" "S3_URL")
WEB_URL=$(shipctl get_resource_version_key "$RES_FILE" "WEB_URL")
- |
TAR_FILENAME=$CONTEXT-$TAG_VER.tar.gz
aws s3 cp --acl public-read "$S3_URL/$UP_TAG_VER/$UP_TAR_FILENAME" "$S3_URL/$TAG_VER/$TAR_FILENAME"
- |
ZIP_FILENAME=$CONTEXT-$TAG_VER.zip
aws s3 cp --acl public-read "$S3_URL/$UP_TAG_VER/$UP_ZIP_FILENAME" "$S3_URL/$TAG_VER/$ZIP_FILENAME"
- |
pushd $(shipctl get_resource_meta "shipit_gh_ssh")
shipctl get_json_value integration.json 'privateKey' > gh_ssh.key
chmod 600 gh_ssh.key
ssh-add gh_ssh.key
popd
- pushd $(shipctl get_resource_state "$RES_REPO")
- |
git remote add up $GIT_PATH
git remote -v
git checkout master
- |
git pull --tags
if git tag -d $TAG_VER; then
git push --delete up $TAG_VER
fi
- |
git checkout $REPO_COMMIT
git tag $TAG_VER
git push up $TAG_VER
on_success:
script:
- shipctl put_resource_state_multi $JOB_NAME "versionName=$TAG_VER" "TAG_VER=$TAG_VER" "FILE_REPO_COMMIT_SHA=$REPO_COMMIT" "WEB_URL=$WEB_URL" "S3_URL=$S3_URL" "TAR_FILENAME=$TAR_FILENAME" "ZIP_FILENAME=$ZIP_FILENAME"