-
Notifications
You must be signed in to change notification settings - Fork 8
153 lines (143 loc) · 3.93 KB
/
Copy pathplugin-fn-elasticsearch.yml
File metadata and controls
153 lines (143 loc) · 3.93 KB
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
# The name of the workflow node to appear in the actions and badge!
name: Elasticsearch Flow-Node
on:
push:
paths:
- 'api-builder-plugin-fn-elasticsearch/**'
branches:
- 'master'
pull_request:
paths:
- 'api-builder-plugin-fn-elasticsearch/**'
release:
types:
- published
defaults:
run:
working-directory: api-builder-plugin-fn-elasticsearch
jobs:
unit-tests:
name: Unit tests
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x, 14.x, 16.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Run unit tests
env:
CI: true
run: |
npm install
npm run build --if-present
npm run unit-test
integration-tests-es-v8:
name: Integration-tests ES V8
runs-on: ubuntu-latest
needs: unit-tests
services:
elasticsearch8:
image: docker.elastic.co/elasticsearch/elasticsearch:8.0.0
ports:
- 9200:9200
- 9300:9300
env:
xpack.security.enabled: false
action.auto_create_index: '-apigw-*,+*'
options: >-
-e "discovery.type=single-node"
-e "xpack.security.enabled=false"
--health-cmd "curl -f http://localhost:9200"
--health-interval 30s
--health-timeout 2s
--health-retries 5
--health-start-period 30s
steps:
- uses: actions/checkout@v1
- name: Use Node.js 14
uses: actions/setup-node@v1
with:
node-version: '14'
- name: Run integration tests
env:
CI: true
ELASTICSEARCH_HOSTS: 'http://localhost:9200'
run: |
npm install
npm run build --if-present
npm run integration-test
integration-tests-es-v7:
name: Integration-tests ES V7
runs-on: ubuntu-latest
needs: unit-tests
services:
elasticsearch7:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.0
ports:
- 9200:9200
- 9300:9300
env:
xpack.security.enabled: false
action.auto_create_index: '-apigw-*,+*'
options: >-
-e "discovery.type=single-node"
--health-cmd "curl -f http://localhost:9200"
--health-interval 30s
--health-timeout 2s
--health-retries 5
--health-start-period 30s
steps:
- uses: actions/checkout@v1
- name: Use Node.js 14
uses: actions/setup-node@v1
with:
node-version: '14'
- name: Run integration tests
env:
CI: true
ELASTICSEARCH_HOSTS: 'http://localhost:9200'
run: |
npm install
npm run build --if-present
npm run integration-test
publish-gpr:
if: contains(github.event.release.tag_name, 'plugin-fn-elasticsearch')
env:
CI: true
needs: [integration-tests-es-v7, integration-tests-es-v8]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 12
registry-url: https://npm.pkg.github.com/
scope: '@Axway-API-Builder-Ext'
- name: Publish to GitHub package repo
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
run: |
npm install
npm publish
publish-npm:
env:
CI: true
needs: [integration-tests-es-v7, publish-gpr]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 12
registry-url: https://registry.npmjs.org/
- name: Publish to NPM package repo
env:
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
run: |
npm install
echo "//registry.npmjs.org/:_authToken=${{ secrets.npm_token }}" > ~/.npmrc
npm publish --access public