forked from rescript-lang/rescript
-
Notifications
You must be signed in to change notification settings - Fork 0
144 lines (120 loc) · 3.54 KB
/
publish_prerelease.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
name: Publish pre-release to NPM
on:
workflow_dispatch:
inputs:
release_version:
description: 'change npm release version'
required: true
default: ''
jobs:
build_linux:
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-18.04]
ocaml-compiler:
- ocaml-variants.4.10.3+trunk
steps:
- uses: actions/checkout@v2
with:
submodules: 'true'
- name: Use OCaml ${{ matrix.ocaml-compiler}}
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: ${{ matrix.ocaml-compiler }}
- name: Use npm
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Install deps
run: npm install
- name: Ninja config
run: opam exec -- ./scripts/ninja.js config
- name: Ninja build
run: opam exec -- ./scripts/ninja.js build
- name: (only on release) Upload artifacts ${{ matrix.os }}
uses: actions/upload-artifact@master
with:
name: ${{ matrix.os }}
path: |
./linux/bsb_helper.exe
./linux/bsc.exe
./linux/rescript.exe
if-no-files-found: error
build_macos:
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macOS-latest]
ocaml-compiler:
- ocaml-variants.4.10.2+rescript
steps:
- uses: actions/checkout@v2
with:
submodules: 'true'
- name: Use OCaml ${{ matrix.ocaml-compiler}}
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: ${{ matrix.ocaml-compiler }}
- name: Use npm
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Install deps
run: npm install
- name: Ninja config
run: opam exec -- ./scripts/ninja.js config
- name: Ninja build
run: opam exec -- ./scripts/ninja.js build
- name: (only on release) Upload artifacts ${{ matrix.os }}
uses: actions/upload-artifact@master
with:
name: ${{ matrix.os }}
path: |
./darwin/bsb_helper.exe
./darwin/bsc.exe
./darwin/rescript.exe
if-no-files-found: error
publish:
needs: [build_linux, build_macos]
name: (only on release) Publish
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "12.x"
registry-url: "https://registry.npmjs.org"
- name: Download linux artifacts
if: success()
uses: actions/download-artifact@master
with:
name: ubuntu-18.04
path: binaries/linux
- name: Download macOS artifacts
if: success()
uses: actions/download-artifact@master
with:
name: macOS-latest
path: binaries/darwin
- name: Move artifacts
if: success()
run: |
mv binaries/linux/* linux
cp binaries/darwin/* darwin
mv binaries/darwin/* darwinarm64
- name: Change npm release version
if: success()
uses: reedyuk/[email protected]
with:
version: ${{ github.event.inputs.release_version }}
- name: Pack package
if: success()
run: npm pack
- name: Publish
if: success()
run: npm publish greenlabs-rescript-${{ github.event.inputs.release_version }}.tgz --tag next
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}