-
Notifications
You must be signed in to change notification settings - Fork 0
95 lines (90 loc) · 3.31 KB
/
test-publish.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
name: Test Release Publish
on: [push]
jobs:
test:
name: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Get yarn cache
id: yarn-cache
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: ubuntu-latest-node-18.19.x-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
ubuntu-latest-node-18.19.x-yarn-
- uses: actions/setup-node@v3
with:
node-version: 18.19
registry-url: https://registry.npmjs.org/
- name: Install
run: yarn install --frozen-lockfile
- name: Lint
run: yarn lint
- name: Test
run: yarn test --ci --bail
- uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: ./coverage
release_publish:
name: publish
runs-on: ubuntu-latest
needs: test
if: success() && github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v3
- name: Get yarn cache
id: yarn-cache
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: ubuntu-latest-node-18.19.x-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
ubuntu-latest-node-18.19.x-yarn-
- uses: actions/setup-node@v3
with:
node-version: 18.19
registry-url: https://registry.npmjs.org/
- name: Install
run: yarn install --frozen-lockfile
- name: Setup env vars
id: ownEnvVars
run: |
# Set PACKAGE_VERSION
PACKAGE_VERSION=$(node -p -e "require('./package.json').version")
echo ::set-output name=PACKAGE_VERSION::$PACKAGE_VERSION
# Set COMMIT_LOG
COMMIT_LOG=`git log $(git describe --tags --abbrev=0)..HEAD --date=iso-local --format='%cd %h %an - %s '`
echo ::set-output name=COMMIT_LOG::$COMMIT_LOG
- name: npm publish
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ steps.ownEnvVars.outputs.PACKAGE_VERSION }}
commit: main
body: ${{ steps.ownEnvVars.outputs.COMMIT_LOG }}
- name: Create JIRA release
uses: darioblanco/jira-wizard@main
with:
app: ${{ github.repository }}
host: ${{ secrets.JIRA_HOST }}
email: ${{ secrets.JIRA_EMAIL }}
apiToken: ${{ secrets.JIRA_API_TOKEN }}
projectKey: ${{ secrets.JIRA_PROJECT_KEY }}
version: ${{ steps.ownEnvVars.outputs.PACKAGE_VERSION }}
draft: false
- name: Slack Notification - NPM release
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_RELEASE_BOT_PUBLIC }}
SLACK_USERNAME: 'npmBot'
SLACK_CHANNEL: 'releases_npm'
SLACK_ICON: 'https://avatars0.githubusercontent.com/u/6078720?s=32&v=4'
SLACK_MESSAGE: '📦 Released NPM package ${{github.repository}} https://github.com/${{github.repository}}/releases/tag/${{ steps.ownEnvVars.outputs.PACKAGE_VERSION }}'