2727 with :
2828 node-version : 20
2929 registry-url : https://registry.npmjs.org
30- always-auth : false
3130
3231 - name : Prepare npm trusted publishing context
3332 run : |
6766
6867 - name : Publish package with provenance
6968 run : npm publish --provenance --access public
69+ env :
70+ NODE_AUTH_TOKEN : " "
71+ NPM_TOKEN : " "
72+
73+ - name : Verify published version on npm registry
74+ run : |
75+ VERSION="${{ steps.pkg.outputs.version }}"
76+ for i in 1 2 3 4 5 6; do
77+ PUBLISHED_VERSION=$(npm view vitepress-mermaid-renderer version || true)
78+ if [ "$PUBLISHED_VERSION" = "$VERSION" ]; then
79+ echo "Verified npm latest=$PUBLISHED_VERSION"
80+ exit 0
81+ fi
82+ echo "Waiting for npm propagation... attempt $i (latest=$PUBLISHED_VERSION, expected=$VERSION)"
83+ sleep 10
84+ done
85+ echo "Published version was not visible on npm after waiting."
86+ exit 1
7087
7188 - name : Extract release notes from changelog
7289 run : |
@@ -90,3 +107,41 @@ jobs:
90107 tag_name : ${{ steps.pkg.outputs.tag }}
91108 name : ${{ steps.pkg.outputs.tag }}
92109 body_path : RELEASE_NOTES.md
110+
111+ - name : Cleanup release and tag on failure
112+ if : failure() && steps.pkg.outputs.tag != ''
113+ uses : actions/github-script@v7
114+ with :
115+ script : |
116+ const tag = "${{ steps.pkg.outputs.tag }}";
117+ const owner = context.repo.owner;
118+ const repo = context.repo.repo;
119+
120+ // Delete release if it exists.
121+ try {
122+ const release = await github.rest.repos.getReleaseByTag({
123+ owner,
124+ repo,
125+ tag,
126+ });
127+ await github.rest.repos.deleteRelease({
128+ owner,
129+ repo,
130+ release_id: release.data.id,
131+ });
132+ core.info(`Deleted release for tag ${tag}`);
133+ } catch (error) {
134+ core.info(`No release to delete for tag ${tag}: ${error.message}`);
135+ }
136+
137+ // Delete git tag ref if it exists.
138+ try {
139+ await github.rest.git.deleteRef({
140+ owner,
141+ repo,
142+ ref: `tags/${tag}`,
143+ });
144+ core.info(`Deleted tag ${tag}`);
145+ } catch (error) {
146+ core.info(`No tag to delete (${tag}) or delete failed: ${error.message}`);
147+ }
0 commit comments