1
+ name : publish web ui
2
+
3
+ on :
4
+ workflow_dispatch : # Allows manual trigger of the workflow
5
+ inputs :
6
+ custom_version : # Optional input for a custom version
7
+ description : ' Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing'
8
+ required : false
9
+ type : string
10
+ token :
11
+ description : ' Personal Access Token'
12
+ required : true
13
+ default : " "
14
+ type : string
15
+ publish_ui :
16
+ description : ' Publish to NPM?'
17
+ required : true
18
+ default : true
19
+ type : boolean
20
+ workflow_call : # Allows trigger of the workflow from another workflow
21
+ inputs :
22
+ custom_version : # Optional input for a custom version
23
+ description : ' Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing'
24
+ required : false
25
+ type : string
26
+ token :
27
+ description : ' Personal Access Token'
28
+ required : true
29
+ default : " "
30
+ type : string
31
+ publish_ui :
32
+ description : ' Publish to NPM?'
33
+ required : true
34
+ default : true
35
+ type : boolean
36
+
37
+ jobs :
38
+ publish-web-ui-npm :
39
+ if : github.repository == 'feast-dev/feast'
40
+ runs-on : ubuntu-latest
41
+ env :
42
+ # This publish is working using an NPM automation token to bypass 2FA
43
+ NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
44
+ steps :
45
+ - uses : actions/checkout@v4
46
+ - id : get-version
47
+ uses : ./.github/actions/get-semantic-release-version
48
+ with :
49
+ custom_version : ${{ github.event.inputs.custom_version }}
50
+ token : ${{ github.event.inputs.token || github.token }}
51
+ - name : Setup Node.js
52
+ uses : actions/setup-node@v3
53
+ with :
54
+ node-version-file : ' ./ui/.nvmrc'
55
+ - name : Bump file versions (temporarily for Web UI publish)
56
+ env :
57
+ CURRENT_VERSION : ${{ steps.get-version.outputs.current_version }}
58
+ NEXT_VERSION : ${{ steps.get-version.outputs.version_without_prefix }}
59
+ run : python ./infra/scripts/release/bump_file_versions.py ${CURRENT_VERSION} ${NEXT_VERSION}
60
+ - name : Install yarn dependencies
61
+ working-directory : ./ui
62
+ run : yarn install
63
+ - name : Build yarn rollup
64
+ working-directory : ./ui
65
+ run : yarn build:lib
66
+ - name : Publish UI package
67
+ working-directory : ./ui
68
+ if : github.event.inputs.publish_ui != 'false'
69
+ run : npm publish
70
+ env :
71
+ # This publish is working using an NPM automation token to bypass 2FA
72
+ NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
0 commit comments