]> git.mxchange.org Git - friendica-addons.git/blob - .drone.yml
Merge pull request #1165 from nupplaphil/feat/drone_release_followup
[friendica-addons.git] / .drone.yml
1 ---
2 kind: pipeline
3 type: docker
4 name: Check messages.po
5
6 clone:
7   disable: true
8
9 trigger:
10   event:
11     - pull_request
12
13 steps:
14   - name: clone friendica base
15     image: alpine/git
16     commands:
17       - git clone https://github.com/friendica/friendica.git .
18       - git checkout $DRONE_COMMIT_BRANCH
19   - name: clone friendica addon
20     image: alpine/git
21     commands:
22       - git clone $DRONE_REPO_LINK addon
23       - cd addon/
24       - git checkout $DRONE_COMMIT_BRANCH
25       - git fetch origin $DRONE_COMMIT_REF
26       - git merge $DRONE_COMMIT_SHA
27   - name: Run Xgettext for addons
28     image: friendicaci/transifex
29     commands:
30       - /xgettext-addon.sh
31   - name: Check update necessary
32     image: friendicaci/transifex
33     commands:
34       - /check-addons.sh
35 ---
36 kind: pipeline
37 type: docker
38 name: php-cs check
39
40 clone:
41   disable: true
42
43 trigger:
44   event:
45     - pull_request
46
47 steps:
48   - name: Clone friendica base
49     image: alpine/git
50     commands:
51       - git clone https://github.com/friendica/friendica.git .
52       - git checkout $DRONE_COMMIT_BRANCH
53   - name: Clone friendica addon
54     image: alpine/git
55     commands:
56       - git clone $DRONE_REPO_LINK addon
57       - cd addon/
58       - git checkout $DRONE_COMMIT_BRANCH
59       - git fetch origin $DRONE_COMMIT_REF
60       - git merge $DRONE_COMMIT_SHA
61   - name: Install dependencies
62     image: composer
63     commands:
64       - ./bin/composer.phar run cs:install
65   - name: Run coding standards check
66     image: friendicaci/php-cs
67     commands:
68       - cd addon/
69       - export CHANGED_FILES="$(git diff --name-status ${DRONE_COMMIT_BEFORE}..${DRONE_COMMIT_AFTER} | grep ^A | cut -f2 | sed -e "s/^/addon\\//")"
70       - cd ../
71       - /check-php-cs.sh
72 ---
73 kind: pipeline
74 type: docker
75 name: continuous-deployment
76
77 trigger:
78   repo:
79     - friendica/friendica-addons
80   branch:
81     - develop
82     - 20*-rc
83   event:
84     - push
85
86 node:
87   node: releaser # This prevents executing this pipeline at other servers than drone.friendi.ca
88
89 clone:
90   disable: true
91
92 steps:
93   - name: Clone friendica base
94     image: alpine/git
95     commands:
96       - git clone https://github.com/friendica/friendica.git .
97       - git checkout $DRONE_COMMIT_BRANCH
98   - name: Clone friendica addon
99     image: alpine/git
100     commands:
101       - git clone $DRONE_REPO_LINK addon
102       - cd addon/
103       - git checkout $DRONE_COMMIT_BRANCH
104       - git fetch origin $DRONE_COMMIT_REF
105       - git merge $DRONE_COMMIT_SHA
106   - name: Create artifacts
107     image: debian
108     commands:
109       - apt-get update
110       - apt-get install bzip2
111       - export VERSION="$(cat VERSION)"
112       - export RELEASE="friendica-addons-$VERSION"
113       - export ARTIFACT="$RELEASE.tar.gz"
114       - mkdir ./build
115       - # Create artifact for friendica-addons
116       - tar
117         --exclude='.tx'
118         --exclude='.git'
119         --exclude='.editorconfig'
120         --exclude='.gitattributes'
121         --exclude='.gitignore'
122         --exclude='.drone.yml'
123         --exclude='**/*/messages.po'
124         -cvjf ./build/$ARTIFACT addon/
125       - # calculate SHA256 checksum
126       - cd ./build
127       - sha256sum "$ARTIFACT" > "$ARTIFACT.sum256"
128       - ls -lh
129       - # output the sha256 sum for checking purpose
130       - cat "$ARTIFACT.sum256"
131       - sha256sum "$ARTIFACT"
132   - name: Upload artifacts
133     image: alpine
134     environment:
135       LFTP_HOST:
136         from_secret: sftp_host
137       LFTP_USER:
138         from_secret: sftp_user
139       LFTP_KEY:
140         from_secret: ssh_key
141       LFTP_PORT: "22"
142       LFTP_SOURCE: "build"
143       LFTP_TARGET: "/http"
144     commands:
145       - apk add lftp openssh openssl
146       - touch drone.key
147       - chmod 400 drone.key
148       - echo "$LFTP_KEY" | openssl base64 -A -d > drone.key
149       - lftp -c "
150         set net:timeout 5;
151         set net:max-retries 2;
152         set net:reconnect-interval-base 5;
153         set sftp:auto-confirm true;
154         set sftp:connect-program 'ssh -q -a -x -i drone.key';
155         connect sftp://$LFTP_USER:@$LFTP_HOST:$LFTP_PORT;
156         cd $LFTP_TARGET;
157         mput $LFTP_SOURCE/*;
158         "
159       - rm drone.key
160
161 volumes:
162   - name: cache
163     host:
164       path: /tmp/drone-cache
165 ---
166 kind: pipeline
167 type: docker
168 name: release-deployment
169
170 trigger:
171   repo:
172     - friendica/friendica-addons
173   branch:
174     - stable
175   event:
176     - tag
177
178 node:
179   node: releaser # This prevents executing this pipeline at other servers than drone.friendi.ca
180
181 clone:
182   disable: true
183
184 steps:
185   - name: Clone friendica base
186     image: alpine/git
187     commands:
188       - git clone https://github.com/friendica/friendica.git .
189       - git checkout $DRONE_COMMIT_BRANCH
190   - name: Clone friendica addon
191     image: alpine/git
192     commands:
193       - git clone $DRONE_REPO_LINK addon
194       - cd addon/
195       - git checkout $DRONE_COMMIT_BRANCH
196       - git fetch origin $DRONE_COMMIT_REF
197       - git merge $DRONE_COMMIT_SHA
198   - name: Create artifacts
199     image: debian
200     commands:
201       - apt-get update
202       - apt-get install bzip2
203       - export VERSION="$(cat VERSION)"
204       - export RELEASE="friendica-addons-$VERSION"
205       - export ARTIFACT="$RELEASE.tar.gz"
206       - mkdir ./build
207       - # Create artifact for friendica-addons
208       - tar
209         --exclude='.tx'
210         --exclude='.git'
211         --exclude='.editorconfig'
212         --exclude='.gitattributes'
213         --exclude='.gitignore'
214         --exclude='.drone.yml'
215         --exclude='**/*/messages.po'
216         -cvjf ./build/$ARTIFACT addon/
217       - # calculate SHA256 checksum
218       - cd ./build
219       - sha256sum "$ARTIFACT" > "$ARTIFACT.sum256"
220       - ls -lh
221       - # output the sha256 sum for checking purpose
222       - cat "$ARTIFACT.sum256"
223       - sha256sum "$ARTIFACT"
224   - name: Upload artifacts
225     image: alpine
226     environment:
227       LFTP_HOST:
228         from_secret: sftp_host
229       LFTP_USER:
230         from_secret: sftp_user
231       LFTP_KEY:
232         from_secret: ssh_key
233       LFTP_PORT: "22"
234       LFTP_SOURCE: "build"
235       LFTP_TARGET: "/http"
236     commands:
237       - apk add lftp openssh openssl
238       - touch drone.key
239       - chmod 400 drone.key
240       - echo "$LFTP_KEY" | openssl base64 -A -d > drone.key
241       - lftp -c "
242         set net:timeout 5;
243         set net:max-retries 2;
244         set net:reconnect-interval-base 5;
245         set sftp:auto-confirm true;
246         set sftp:connect-program 'ssh -q -a -x -i drone.key';
247         connect sftp://$LFTP_USER:@$LFTP_HOST:$LFTP_PORT;
248         cd $LFTP_TARGET;
249         mput $LFTP_SOURCE/*;
250         "
251       - rm drone.key
252
253 volumes:
254   - name: cache
255     host:
256       path: /tmp/drone-cache