Skip to content

Commit 685e8fe

Browse files
committed
feat: update npm publish workflow to use zip instead of gzip
1 parent 36f618f commit 685e8fe

File tree

1 file changed

+125
-117
lines changed

1 file changed

+125
-117
lines changed

.github/workflows/npm-publish.yml

Lines changed: 125 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -81,142 +81,150 @@ jobs:
8181
run: npm test
8282

8383
- name: Gzip umd files
84+
shell: bash
8485
run: |
86+
set -euo pipefail
87+
88+
if ! command -v zip >/dev/null 2>&1; then
89+
sudo apt-get update
90+
sudo apt-get install -y zip
91+
fi
92+
8593
cp -r umd/ umd-zip/
8694
mv umd-zip/enum-plus.min.js umd-zip/enum-plus.umd.min.js
8795
mv umd-zip/enum-plus-legacy.min.js umd-zip/enum-plus-legacy.umd.min.js
88-
gzip -9 umd-zip/enum-plus.umd.min.js
89-
gzip -9 umd-zip/enum-plus-legacy.umd.min.js
96+
zip -9 umd-zip/enum-plus.umd.min.js.zip umd-zip/enum-plus.umd.min.js
97+
zip -9 umd-zip/enum-plus-legacy.umd.min.js.zip umd-zip/enum-plus-legacy.umd.min.js
9098
cp -r umd/ umd-zip-full/
9199
mkdir -p umd-zip-full/modern
92100
mkdir -p umd-zip-full/legacy
93101
mv umd-zip-full/enum-plus.min.js* umd-zip-full/modern
94102
mv umd-zip-full/enum-plus-legacy.min.js* umd-zip-full/legacy
95103
cd umd-zip-full/modern
96-
tar -cvf ../../enum-plus.umd.tar.gz *
104+
zip -9 -r ../../enum-plus.umd.zip .
97105
cd ../legacy
98-
tar -cvf ../../enum-plus-legacy.umd.tar.gz *
106+
zip -9 -r ../../enum-plus-legacy.umd.zip .
99107
cd ../..
100108
101109
- name: Add Assets to Release
102110
uses: softprops/action-gh-release@v1
103111
with:
104112
files: |
105-
umd-zip/enum-plus.umd.min.js.gz
106-
umd-zip/enum-plus-legacy.umd.min.js.gz
107-
enum-plus.umd.tar.gz
108-
enum-plus-legacy.umd.tar.gz
113+
umd-zip/enum-plus.umd.min.js.zip
114+
umd-zip/enum-plus-legacy.umd.min.js.zip
115+
enum-plus.umd.zip
116+
enum-plus-legacy.umd.zip
109117
token: ${{ secrets.GITHUB_TOKEN }}
110118

111-
- name: Replace relative image url to cdn.jsdelivr.net
112-
uses: ./.github/actions/replace-img-url
113-
with:
114-
version: ${{ github.event.release.tag_name }}
115-
116-
- name: Replace download url to the releasing version
117-
uses: ./.github/actions/replace-path-url
118-
with:
119-
version: ${{ github.event.release.tag_name }}
120-
121-
- name: Add 'user-content-' prefix to anchor links
122-
uses: ./.github/actions/replace-anchor
123-
124-
- name: Request the latest version of enum-plus
125-
id: get_latest_version_before_publish
126-
run: |
127-
VERSION=$(npm view enum-plus version || echo 0.0.0)
128-
echo "LATEST_VERSION=$VERSION" >> $GITHUB_OUTPUT
129-
130-
- name: Request the next version of enum-plus
131-
id: get_next_version_before_publish
132-
continue-on-error: true
133-
run: |
134-
VERSION=$(npm view enum-plus@next version 2>/dev/null || echo 0.0.0)
135-
echo "NEXT_VERSION=$VERSION" >> $GITHUB_OUTPUT
136-
137-
- name: Publish a prerelease version to npm
138-
run: npm publish --tag beta --ignore-scripts --access=public
139-
if: github.event.release.prerelease
140-
env:
141-
NODE_AUTH_TOKEN: ${{ secrets.npm_token }}
142-
143-
- name: Publish a regular version to npm
144-
run: npm publish --ignore-scripts --access=public
145-
if: github.event.release.prerelease == false
146-
env:
147-
NODE_AUTH_TOKEN: ${{ secrets.npm_token }}
148-
149-
- uses: madhead/semver-utils@latest
150-
id: new_vs_latest
151-
with:
152-
version: ${{ github.event.release.tag_name }}
153-
compare-to: ${{ steps.get_latest_version_before_publish.outputs.LATEST_VERSION }}
154-
155-
- uses: madhead/semver-utils@latest
156-
id: new_vs_next
157-
with:
158-
version: ${{ github.event.release.tag_name }}
159-
compare-to: ${{ steps.get_next_version_before_publish.outputs.NEXT_VERSION }}
160-
161-
- name: Add npm dist-tag for "next"
162-
if: github.event.release.prerelease
163-
run: |
164-
if [ "${{ steps.new_vs_latest.outputs.comparison-result }}" = ">" ]; then
165-
npm dist-tag add enum-plus@${{ github.event.release.tag_name }} next --access=public
166-
fi
167-
env:
168-
NODE_AUTH_TOKEN: ${{ secrets.npm_token }}
169-
170-
- name: Remove npm dist-tag for "next"
171-
if: github.event.release.prerelease == false
172-
run: |
173-
if [ "${{ steps.get_next_version_before_publish.outputs.NEXT_VERSION }}" != "0.0.0" ] && [ "${{ steps.new_vs_next.outputs.comparison-result }}" = ">" ]; then
174-
npm dist-tag rm enum-plus next --access=public
175-
fi
176-
env:
177-
NODE_AUTH_TOKEN: ${{ secrets.npm_token }}
178-
179-
- name: Upload coverage reports to Codecov
180-
uses: codecov/codecov-action@v5
181-
with:
182-
token: ${{ secrets.CODECOV_TOKEN }}
183-
slug: shijistar/enum-plus
184-
# Give the current upload a unique identifier for easy grouping in the Codecov UI
185-
flags: enum-plus-core
186-
# Optional: Give this upload a name
187-
name: enum-plus-core
188-
189-
- name: Request the latest stable version of enum-plus
190-
id: get_latest_version_after_publish
191-
run: |
192-
VERSION=$(npm view enum-plus version)
193-
echo "LATEST_VERSION=$VERSION" >> $GITHUB_OUTPUT
194-
195-
- name: Prepare local master branch
196-
if: github.event.release.prerelease == false
197-
run: |
198-
git add .
199-
git reset --hard
200-
git checkout -b master
201-
git fetch
202-
git branch -u origin/master
203-
git pull origin master
204-
205-
- name: Replace download url to the releasing version
206-
if: github.event.release.prerelease == false
207-
uses: ./.github/actions/replace-path-url
208-
with:
209-
version: ${{ github.event.release.tag_name }}
210-
211-
- name: Commit and push changes
212-
if: github.event.release.prerelease == false
213-
run: |
214-
if [ -n "$(git diff -- README.zh-CN.md README.md)" ]; then
215-
git config --local user.name "${{ vars.COMMIT_USER }}"
216-
git config --local user.email "${{ vars.COMMIT_EMAIL }}"
217-
git commit -am "docs: update download url for release ${{ github.event.release.tag_name }}"
218-
git push origin master
219-
fi
119+
# - name: Replace relative image url to cdn.jsdelivr.net
120+
# uses: ./.github/actions/replace-img-url
121+
# with:
122+
# version: ${{ github.event.release.tag_name }}
123+
124+
# - name: Replace download url to the releasing version
125+
# uses: ./.github/actions/replace-path-url
126+
# with:
127+
# version: ${{ github.event.release.tag_name }}
128+
129+
# - name: Add 'user-content-' prefix to anchor links
130+
# uses: ./.github/actions/replace-anchor
131+
132+
# - name: Request the latest version of enum-plus
133+
# id: get_latest_version_before_publish
134+
# run: |
135+
# VERSION=$(npm view enum-plus version || echo 0.0.0)
136+
# echo "LATEST_VERSION=$VERSION" >> $GITHUB_OUTPUT
137+
138+
# - name: Request the next version of enum-plus
139+
# id: get_next_version_before_publish
140+
# continue-on-error: true
141+
# run: |
142+
# VERSION=$(npm view enum-plus@next version 2>/dev/null || echo 0.0.0)
143+
# echo "NEXT_VERSION=$VERSION" >> $GITHUB_OUTPUT
144+
145+
# - name: Publish a prerelease version to npm
146+
# run: npm publish --tag beta --ignore-scripts --access=public
147+
# if: github.event.release.prerelease
148+
# env:
149+
# NODE_AUTH_TOKEN: ${{ secrets.npm_token }}
150+
151+
# - name: Publish a regular version to npm
152+
# run: npm publish --ignore-scripts --access=public
153+
# if: github.event.release.prerelease == false
154+
# env:
155+
# NODE_AUTH_TOKEN: ${{ secrets.npm_token }}
156+
157+
# - uses: madhead/semver-utils@latest
158+
# id: new_vs_latest
159+
# with:
160+
# version: ${{ github.event.release.tag_name }}
161+
# compare-to: ${{ steps.get_latest_version_before_publish.outputs.LATEST_VERSION }}
162+
163+
# - uses: madhead/semver-utils@latest
164+
# id: new_vs_next
165+
# with:
166+
# version: ${{ github.event.release.tag_name }}
167+
# compare-to: ${{ steps.get_next_version_before_publish.outputs.NEXT_VERSION }}
168+
169+
# - name: Add npm dist-tag for "next"
170+
# if: github.event.release.prerelease
171+
# run: |
172+
# if [ "${{ steps.new_vs_latest.outputs.comparison-result }}" = ">" ]; then
173+
# npm dist-tag add enum-plus@${{ github.event.release.tag_name }} next --access=public
174+
# fi
175+
# env:
176+
# NODE_AUTH_TOKEN: ${{ secrets.npm_token }}
177+
178+
# - name: Remove npm dist-tag for "next"
179+
# if: github.event.release.prerelease == false
180+
# run: |
181+
# if [ "${{ steps.get_next_version_before_publish.outputs.NEXT_VERSION }}" != "0.0.0" ] && [ "${{ steps.new_vs_next.outputs.comparison-result }}" = ">" ]; then
182+
# npm dist-tag rm enum-plus next --access=public
183+
# fi
184+
# env:
185+
# NODE_AUTH_TOKEN: ${{ secrets.npm_token }}
186+
187+
# - name: Upload coverage reports to Codecov
188+
# uses: codecov/codecov-action@v5
189+
# with:
190+
# token: ${{ secrets.CODECOV_TOKEN }}
191+
# slug: shijistar/enum-plus
192+
# # Give the current upload a unique identifier for easy grouping in the Codecov UI
193+
# flags: enum-plus-core
194+
# # Optional: Give this upload a name
195+
# name: enum-plus-core
196+
197+
# - name: Request the latest stable version of enum-plus
198+
# id: get_latest_version_after_publish
199+
# run: |
200+
# VERSION=$(npm view enum-plus version)
201+
# echo "LATEST_VERSION=$VERSION" >> $GITHUB_OUTPUT
202+
203+
# - name: Prepare local master branch
204+
# if: github.event.release.prerelease == false
205+
# run: |
206+
# git add .
207+
# git reset --hard
208+
# git checkout -b master
209+
# git fetch
210+
# git branch -u origin/master
211+
# git pull origin master
212+
213+
# - name: Replace download url to the releasing version
214+
# if: github.event.release.prerelease == false
215+
# uses: ./.github/actions/replace-path-url
216+
# with:
217+
# version: ${{ github.event.release.tag_name }}
218+
219+
# - name: Commit and push changes
220+
# if: github.event.release.prerelease == false
221+
# run: |
222+
# if [ -n "$(git diff -- README.zh-CN.md README.md)" ]; then
223+
# git config --local user.name "${{ vars.COMMIT_USER }}"
224+
# git config --local user.email "${{ vars.COMMIT_EMAIL }}"
225+
# git commit -am "docs: update download url for release ${{ github.event.release.tag_name }}"
226+
# git push origin master
227+
# fi
220228

221229
publish-npm-plugin:
222230
if: needs.check-plugin-release-tag.outputs.is_plugin_tag == 'true'

0 commit comments

Comments
 (0)