-
Notifications
You must be signed in to change notification settings - Fork 86
106 lines (90 loc) · 3.14 KB
/
main.yaml
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
---
name: Continuous integration
on:
push:
jobs:
not-failed-backport:
runs-on: ubuntu-20.04
name: Test that's not a failed backport
timeout-minutes: 5
steps:
- run: 'false'
if: "github.event.head_commit.message == '[skip ci] Add instructions to finish the backport.'"
main:
runs-on: ubuntu-20.04
name: Continuous integration
timeout-minutes: 30
if: "!startsWith(github.event.head_commit.message, '[skip ci] ')"
env:
MAIN_BRANCH: 2.6
CI: true
PATH: /bin:/usr/bin:/usr/local/bin:/home/runner/.local/bin
NODE_OPTIONS: --max-old-space-size=4096
steps:
- run: '! ls BACKPORT_TODO'
- run: /opt/google/chrome/chrome --version
- uses: actions/setup-node@v1
with:
node-version: '14.x'
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: camptocamp/initialise-gopass-summon-action@v2
with:
ci-gpg-private-key: ${{secrets.CI_GPG_PRIVATE_KEY}}
github-gopass-ci-token: ${{secrets.GOPASS_CI_GITHUB_TOKEN}}
patterns: npm transifex
if: github.repository == 'camptocamp/ngeo'
- run: echo "${HOME}/.local/bin" >> ${GITHUB_PATH}
- run: python3 -m pip install --user --requirement=ci/requirements.txt
- name: Checks
run: c2cciutils-checks
- run: |
sudo rm /etc/apt/sources.list.d/*.list
sudo apt update
sudo apt install g++-10 libgbm1 graphicsmagick fonts-liberation2
- run: buildtools/set-version
- run: make .build/node_modules.timestamp
# Lint
- run: npx tsc --version
- run: npm run typecheck
- run: make lint
- run: make test
- run: make check-examples-checker
# Webpack build of ngeo/gmf examples and gmf apps
- run: NODE_ENV=production make examples-hosted
- run: make check-examples
- uses: actions/upload-artifact@v2
with:
name: Examples hosted
path: .build/examples-hosted
if-no-files-found: ignore
retention-days: 5
if: failure()
# Generate API doc
- run: npm run doc
- run: make jsdoc
- run: npm run build-api
- uses: actions/upload-artifact@v2
with:
name: Npm logs
path: /home/runner/.npm/_logs
if-no-files-found: ignore
retention-days: 5
if: failure()
- run: buildtools/publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: github.repository == 'camptocamp/ngeo'
- run: buildtools/npm-publish
if: github.repository == 'camptocamp/ngeo'
- name: Notify c2cgeoportal
run: >
curl --request POST --header "Content-Type: application/json"
--header 'Accept: application/vnd.github.v3+json'
--header "Authorization: token ${{ secrets.GOPASS_CI_GITHUB_TOKEN }}"
https://api.github.com/repos/camptocamp/c2cgeoportal/dispatches
--data '{"event_type": "ngeo_${{ env.MAIN_BRANCH }}_updated"}'
if: >
github.ref == format('refs/heads/{0}', env.MAIN_BRANCH)
&& github.repository == 'camptocamp/ngeo'