add publishing (#3)
Lorenzo Rizzotti committed
Mar 23, 2025 at 12:15 UTC
13fea9ae899cc8063d5f0591f396393a042b27f2
1 file changed
+55
.github/workflows/ci.yml
+55
@@ -38,6 +38,27 @@ jobs:
38
- name: Run tests
39
run: cargo test
40
41
+ - name: Check if Cargo.toml version changed
42
+ id: cargo-version-check
43
+ if: github.ref == 'refs/heads/master'
44
+ run: |
45
+ git fetch origin
46
+ CURRENT_VERSION=$(grep -m 1 "version = " Cargo.toml | sed 's/version = //; s/"//g')
47
+ PREVIOUS_VERSION=$(git show origin/master:Cargo.toml | grep -m 1 "version = " | sed 's/version = //; s/"//g')
48
+
49
+ if [ "$CURRENT_VERSION" != "$PREVIOUS_VERSION" ]; then
50
+ echo "version_changed=true" >> $GITHUB_OUTPUT
51
+ echo "Version changed from $PREVIOUS_VERSION to $CURRENT_VERSION"
52
+ else
53
+ echo "version_changed=false" >> $GITHUB_OUTPUT
54
+ echo "Version unchanged: $CURRENT_VERSION"
55
+ fi
56
+
57
+ - name: Publish to crates.io
58
+ if: ${{ github.ref == 'refs/heads/master' && steps.cargo-version-check.outputs.version_changed == 'true' }}
59
+ run: cargo publish --token ${CARGO_REGISTRY_TOKEN}
60
+ env:
61
+ CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
62
bun:
63
name: Bun Checks
64
runs-on: ubuntu-latest
@@ -54,3 +75,37 @@ jobs:
75
76
- name: Run bun check
77
run: bun run check
78
+
79
+ - name: Check if package.json version changed
80
+ id: npm-version-check
81
+ if: github.ref == 'refs/heads/master'
82
+ run: |
83
+ git fetch origin
84
+ CURRENT_VERSION=$(grep -m 1 '"version":' package.json | sed 's/.*"version": "//; s/".*//')
85
+ PREVIOUS_VERSION=$(git show origin/master:package.json | grep -m 1 '"version":' | sed 's/.*"version": "//; s/".*//')
86
+
87
+ if [ "$CURRENT_VERSION" != "$PREVIOUS_VERSION" ]; then
88
+ echo "version_changed=true" >> $GITHUB_OUTPUT
89
+ echo "Version changed from $PREVIOUS_VERSION to $CURRENT_VERSION"
90
+ else
91
+ echo "version_changed=false" >> $GITHUB_OUTPUT
92
+ echo "Version unchanged: $CURRENT_VERSION"
93
+ fi
94
+
95
+ - name: Setup Node.js for npm publishing
96
+ if: ${{ github.ref == 'refs/heads/master' && steps.npm-version-check.outputs.version_changed == 'true' }}
97
+ uses: actions/setup-node@v3
98
+ with:
99
+ node-version: '23.x'
100
+ registry-url: 'https://registry.npmjs.org'
101
+
102
+ - name: Build package
103
+ if: ${{ github.ref == 'refs/heads/master' && steps.npm-version-check.outputs.version_changed == 'true' }}
104
+ run: bun run build
105
+
106
+ - name: Publish to npm
107
+ if: ${{ github.ref == 'refs/heads/master' && steps.npm-version-check.outputs.version_changed == 'true' }}
108
+ run: npm publish
109
+ env:
110
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
111
+