1
+ name : Service Worker CI/CD
2
+
3
+ on :
4
+ push :
5
+ paths :
6
+ - service-worker/**
7
+ - .github/workflows/service-worker-ci-cd.yml
8
+
9
+ jobs :
10
+ build :
11
+ runs-on : ubuntu-latest
12
+ strategy :
13
+ matrix :
14
+ node-version : [ lts/* ]
15
+ steps :
16
+ - uses : actions/checkout@v3
17
+ - name : Use Node.js ${{ matrix.node-version }}
18
+ uses : actions/setup-node@v3
19
+ with :
20
+ node-version : ${{ matrix.node-version }}
21
+
22
+ - run : npm ci
23
+ - run : npm test -w service-worker
24
+ - run : npm run lint -w service-worker
25
+ - run : npm run build -w service-worker
26
+
27
+ - name : Save @pod-os/service-worker build
28
+ if : github.ref == 'refs/heads/main'
29
+ uses : actions/upload-artifact@v4
30
+ with :
31
+ name : service-worker-build
32
+ path : |
33
+ service-worker/lib/
34
+ service-worker/types/
35
+ service-worker/package.json
36
+ retention-days : 1
37
+
38
+ npm-publish-service-worker-build :
39
+ if : github.ref == 'refs/heads/main'
40
+ needs : build
41
+ runs-on : ubuntu-latest
42
+ outputs :
43
+ prereleaseVersion : ${{ steps.prerelease.outputs.version }}
44
+ steps :
45
+ - uses : actions/download-artifact@v4
46
+ with :
47
+ name : service-worker-build
48
+ - uses : actions/setup-node@v3
49
+ with :
50
+ node-version : lts/*
51
+ -
uses :
rlespinasse/[email protected]
52
+ - name : prerelease version
53
+ run : |
54
+ echo "::set-output name=version::$(npm version prerelease --preid rc.${GITHUB_SHA_SHORT} --no-git-tag-version)"
55
+ id : prerelease
56
+ - run : echo prerelease version is ${{ steps.prerelease.outputs.version }}
57
+ - uses : JS-DevTools/npm-publish@v1
58
+ name : Publish @pod-os/service-worker
59
+ with :
60
+ token : ${{ secrets.NPM_TOKEN }}
61
+ tag : ${{ env.GITHUB_REF_SLUG }}
62
+
63
+ npm-release-latest-service-worker :
64
+ if : github.ref == 'refs/heads/main'
65
+ needs : build
66
+ runs-on : ubuntu-latest
67
+ steps :
68
+ - uses : actions/download-artifact@v4
69
+ with :
70
+ name : service-worker-build
71
+ - uses : actions/setup-node@v3
72
+ with :
73
+ node-version : lts/*
74
+ - uses : JS-DevTools/npm-publish@v1
75
+ name : Release @pod-os/service-worker
76
+ with :
77
+ token : ${{ secrets.NPM_TOKEN }}
78
+ tag : latest
0 commit comments