-
Notifications
You must be signed in to change notification settings - Fork 0
139 lines (118 loc) · 3.47 KB
/
release.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
name: Release
on:
push:
tags:
- v*
env:
BUNDLE_NAME: async_channels
jobs:
version:
runs-on: ubuntu-latest
steps:
- name: Version
id: version
run: echo ::set-output name=version::${GITHUB_REF/refs\/tags\/v/}
- name: Is pre-release
id: is_pre
run: echo ::set-output name=IS_PRE::"$([[ ${{steps.version.outputs.version}} =~ .+-.+ ]] && echo 0 || echo 1)"
outputs:
version: ${{ steps.version.outputs.version }}
is_pre: ${{ steps.is_pre.outputs.IS_PRE }}
build-npm:
needs: [version]
strategy:
matrix:
registry: [npmjs, github]
include:
- registry: npmjs
scope: "eyalsh"
registry-url: https://registry.npmjs.org
- registry: github
scope: "Eyal-Shalev"
registry-url: 'https://npm.pkg.github.com'
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v2
- uses: ./.github/build-npm
with:
scope: ${{ matrix.scope }}
registry-url: ${{ matrix.registry-url }}
version: ${{ needs.version.outputs.version }}
dist: dist-${{ matrix.registry }}
publish:
name: Publish
needs: [build-npm, version]
strategy:
matrix:
registry: [npmjs, github]
include:
- registry: npmjs
registry-url: https://registry.npmjs.org
- registry: github
registry-url: 'https://npm.pkg.github.com'
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- name: Git Checkout
uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: dist-${{ matrix.registry }}
path: dist
- uses: actions/setup-node@v2
with:
node-version: 16
registry-url: ${{ matrix.registry-url }}
- run: npm publish
name: publish - npmjs
if: ${{ matrix.registry == 'npmjs' }}
working-directory: dist/npm
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- run: npm publish
name: publish - github
if: ${{ matrix.registry == 'github' }}
working-directory: dist/npm
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-iife:
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v2
- uses: ./.github/build-iife
release:
name: Release
runs-on: ubuntu-latest
needs: [build-iife, version]
steps:
- name: Git Checkout
uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: dist-iife
path: dist
- uses: marvinpinto/action-automatic-releases@latest
if: ${{ needs.version.outputs.is_pre }}
with:
prerelease: true
repo_token: ${{ secrets.GITHUB_TOKEN }}
title: Version ${{ needs.version.outputs.version }}
files: |
LICENSE
README.md
dist/async_channels.iife.js
dist/async_channels.iife.min.js
- uses: marvinpinto/action-automatic-releases@latest
if: ${{ ! needs.version.outputs.is_pre }}
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
title: Version ${{ needs.version.outputs.version }}
files: |
LICENSE
README.md
dist/async_channels.iife.js
dist/async_channels.iife.min.js