Skip to content

Commit 798ee08

Browse files
authored
Merge pull request #3 from MeshJS/initial-commit
update github workflow
2 parents 6591407 + aeb31ab commit 798ee08

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed

.github/workflows/publish.yml

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
2+
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
3+
4+
name: Publish Mesh SDK Contract
5+
6+
on:
7+
pull_request:
8+
types:
9+
- closed
10+
branches:
11+
- main
12+
13+
jobs:
14+
build:
15+
runs-on: ubuntu-latest
16+
strategy:
17+
matrix:
18+
node-version: [20]
19+
steps:
20+
- uses: actions/checkout@v4
21+
- name: Use Node.js ${{ matrix.node-version }}
22+
uses: actions/setup-node@v4
23+
- name: Install dependencies
24+
run: npm install
25+
- name: Lint
26+
run: npm run lint
27+
- name: Build
28+
run: npm run build
29+
30+
check-version:
31+
runs-on: ubuntu-latest
32+
if: github.event.pull_request.merged == true
33+
outputs:
34+
version-updated: ${{ steps.compare-versions.outputs.version-updated }}
35+
steps:
36+
- name: Checkout main branch at commit before merge
37+
uses: actions/checkout@v4
38+
with:
39+
ref: ${{ github.event.pull_request.base.sha }}
40+
41+
- name: Get package version from main branch before merge
42+
id: pre-merge-version
43+
run: |
44+
PRE_MERGE_VERSION=$(node -p "require('./package.json').version")
45+
echo "pre_merge_version=$PRE_MERGE_VERSION" >> "$GITHUB_OUTPUT"
46+
47+
- name: Checkout main branch at commit after merge
48+
uses: actions/checkout@v4
49+
with:
50+
ref: "main"
51+
52+
- name: Get package version from main branch after merge
53+
id: post-merge-version
54+
run: |
55+
POST_MERGE_VERSION=$(node -p "require('./package.json').version")
56+
echo "post_merge_version=$POST_MERGE_VERSION" >> "$GITHUB_OUTPUT"
57+
58+
- name: Compare versions
59+
id: compare-versions
60+
run: |
61+
if [[ "${{ steps.pre-merge-version.outputs.pre_merge_version }}" != "${{ steps.post-merge-version.outputs.post_merge_version }}" ]]; then
62+
echo "version-updated=true" >> "$GITHUB_OUTPUT"
63+
else
64+
echo "version-updated=false" >> "$GITHUB_OUTPUT"
65+
fi
66+
67+
publish-meshsdk-contract:
68+
needs: [build, check-version]
69+
if: needs.check-version.outputs.version-updated == 'true'
70+
runs-on: ubuntu-latest
71+
steps:
72+
- uses: actions/checkout@v4
73+
- uses: actions/setup-node@v4
74+
with:
75+
node-version: 20
76+
registry-url: https://registry.npmjs.org/
77+
- run: npm install && npm run build
78+
- run: npm publish --access public
79+
env:
80+
NODE_AUTH_TOKEN: ${{secrets.npm_token}}

0 commit comments

Comments
 (0)