-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
153 lines (137 loc) · 4.22 KB
/
.gitlab-ci.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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
stages:
- source
- build
- deploy
portable-source:
stage: source
tags:
- graphviz,centos7
script:
- ./autogen.sh
- make dist
artifacts:
when: on_success
expire_in: 1 week
paths:
- VERSION
- COLLECTION
- graphviz-*.tar.gz
only:
- master
.build_template: &rpm_build_definition
stage: build
script:
- rm -rf /home/gitlab-runner/rpmbuild
- GV_VERSION=$( cat VERSION )
- COLLECTION=$( cat COLLECTION )
- rpmbuild -ta graphviz-${GV_VERSION}.tar.gz
- ID=$( cat /etc/redhat-release | cut -d' ' -f1 | tr 'A-Z' 'a-z' )
- VERSION_ID=$( cat /etc/redhat-release | cut -d' ' -f3 | cut -d'.' -f1 )
- if test -f /etc/os-release; then . /etc/os-release; fi
- DIR=Packages/${COLLECTION}/${ID}/${VERSION_ID}
- ARCH=$( uname -m )
- mkdir -p ${DIR}/os/${ARCH}
- mkdir -p ${DIR}/debug/${ARCH}
- mkdir -p ${DIR}/source
- mv /home/gitlab-runner/rpmbuild/SRPMS/*.src.rpm ${DIR}/source/
- mv /home/gitlab-runner/rpmbuild/RPMS/*/*debuginfo*rpm ${DIR}/debug/${ARCH}/
- mv /home/gitlab-runner/rpmbuild/RPMS/*/*.rpm ${DIR}/os/${ARCH}/
artifacts:
when: on_success
expire_in: 1 week
paths:
- Packages/*/*/*/*/*/*.rpm
- Packages/*/*/*/*/*.rpm
only:
- master
.build_template: &deb_build_definition
stage: build
script:
- GV_VERSION=$( cat VERSION )
- COLLECTION=$( cat COLLECTION )
- zcat graphviz-${GV_VERSION}.tar.gz | tar xf -
- (cd graphviz-${GV_VERSION}; fakeroot make -f debian/rules binary)
- . /etc/os-release
- DIR=Packages/${COLLECTION}/${ID}/${VERSION_ID}
- ARCH=$( uname -m )
- mkdir -p ${DIR}/os/${ARCH}
- mkdir -p ${DIR}/debug/${ARCH}
- mkdir -p ${DIR}/source
- mv *.deb ${DIR}/os/${ARCH}/
- mv *.ddeb ${DIR}/debug/${ARCH}/
artifacts:
when: on_success
expire_in: 1 week
paths:
- Packages/*/*/*/*/*/*deb
- Packages/*/*/*/*/*.gz
only:
- master
centos6-build:
<<: *rpm_build_definition
tags:
- graphviz,centos6
centos7-build:
<<: *rpm_build_definition
tags:
- graphviz,centos7
fedora27-build:
<<: *rpm_build_definition
tags:
- graphviz,fedora27
fedora28-build:
<<: *rpm_build_definition
tags:
- graphviz,fedora28
fedora29-build:
<<: *rpm_build_definition
tags:
- graphviz,fedora29
fedora30-build:
<<: *rpm_build_definition
tags:
- graphviz,fedora30
fedora31-build:
<<: *rpm_build_definition
tags:
- graphviz,fedora31
fedora32-build:
<<: *rpm_build_definition
tags:
- graphviz,fedora32
ubuntu18-04-build:
<<: *deb_build_definition
tags:
- graphviz,ubuntu18-04
ubuntu18-10-build:
<<: *deb_build_definition
tags:
- graphviz,ubuntu18-10
ubuntu19-04-build:
<<: *deb_build_definition
tags:
- graphviz,ubuntu19-04
deployment:
stage: deploy
script:
- GV_VERSION=$( cat VERSION )
- COLLECTION=$( cat COLLECTION )
- eval $(ssh-agent -s)
- cat "$DEPLOY_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan "$DEPLOY_HOST" >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- chmod -R o-rwx Packages
- chmod -R g-wx Packages
- chmod -R g+X Packages
- ssh "$DEPLOY_USER"@"$DEPLOY_HOST" 'rm -rf Packages/'"$COLLECTION"'/{fedora,centos,ubuntu}'
- scp -r Packages/* "$DEPLOY_USER"@"$DEPLOY_HOST"':'Packages/
- ssh "$DEPLOY_USER"@"$DEPLOY_HOST" 'for i in Packages/'"$COLLECTION"'/{fedora,centos}/*/{source,os/*,debug/*}; do createrepo $i; done'
- scp graphviz-fedora.repo graphviz-centos.repo "$DEPLOY_USER"@"$DEPLOY_HOST"':'Packages/
- ssh "$DEPLOY_USER"@"$DEPLOY_HOST" mkdir -p Packages/"$COLLECTION"/portable_source
- scp graphviz-"$GV_VERSION".tar.gz "$DEPLOY_USER"@"$DEPLOY_HOST"':'Packages/"$COLLECTION"/portable_source/
only:
- master
tags:
- graphviz,deploy