Skip to content

Commit 5726650

Browse files
authored
Merge pull request #107 from ConvertAPI/ci-staging-retry-delay
Fix the npm publish path; retry the staging tests after a pause
2 parents e50db29 + 31ca45c commit 5726650

3 files changed

Lines changed: 27 additions & 9 deletions

File tree

‎.github/workflows/build.yml‎

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,23 @@ jobs:
5959
echo "::error::The CONVERTAPI_STAGING_TOKEN secret is not available to this run (a pull request from a fork gets no secrets)"
6060
exit 1
6161
fi
62-
# The staging API now and then answers 503 (no healthy upstream), so each test gets two retries.
62+
# The staging API answers 503 (no healthy upstream) in bursts of up to a minute, so each test gets
63+
# two immediate retries and the whole suite up to three attempts, 30 s apart.
6364
npm run lint
64-
npm run cover -- --retries 2
65+
for attempt in 1 2 3; do
66+
npm run cover -- --retries 2 && exit 0
67+
echo "::warning::Attempt $attempt: the tests failed, see above"
68+
sleep 30
69+
done
70+
echo "::error::The tests failed three times"
71+
exit 1
6572
6673
- name: Build
6774
run: npm run build
6875

6976
# The examples call the production API and catch and print their own errors, so the preload points
70-
# them at CONVERT_API_BASE_URI and any printed error fails an attempt. Up to three attempts, because
71-
# the staging API now and then answers 503.
77+
# them at CONVERT_API_BASE_URI and any printed error fails an attempt. Up to three attempts, 30 s apart,
78+
# because the staging API answers 503 in bursts.
7279
- name: Run the examples
7380
env:
7481
API_TOKEN: ${{ secrets.CONVERTAPI_STAGING_TOKEN }}
@@ -80,7 +87,7 @@ jobs:
8087
exit 0
8188
fi
8289
echo "::warning::Attempt $attempt: an example failed, see the errors above"
83-
sleep 10
90+
sleep 30
8491
done
8592
echo "::error::The examples failed three times"
8693
exit 1

‎.github/workflows/publish.yml‎

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,18 @@ jobs:
144144
- name: Lint and test
145145
env:
146146
CONVERT_API_SECRET: ${{ secrets.CONVERTAPI_STAGING_TOKEN }}
147-
# The staging API now and then answers 503 (no healthy upstream), so each test gets two retries.
147+
# The staging API answers 503 (no healthy upstream) in bursts of up to a minute, so each test gets
148+
# two immediate retries and the whole suite up to three attempts, 30 s apart.
148149
run: |
150+
set -euo pipefail
149151
npm run lint
150-
npm run cover -- --retries 2
152+
for attempt in 1 2 3; do
153+
npm run cover -- --retries 2 && exit 0
154+
echo "::warning::Attempt $attempt: the tests failed, see above"
155+
sleep 30
156+
done
157+
echo "::error::The tests failed three times"
158+
exit 1
151159
152160
- name: Set the version and build
153161
env:
@@ -187,7 +195,7 @@ jobs:
187195
echo "::error::No npm credentials: set up Trusted Publishing (NPM_TRUSTED_PUBLISHING) or the NPM_TOKEN secret"
188196
exit 1
189197
fi
190-
npm publish "out/$PACKAGE-$VERSION.tgz" --provenance --access public --tag "$DIST_TAG" --ignore-scripts
198+
npm publish "./out/$PACKAGE-$VERSION.tgz" --provenance --access public --tag "$DIST_TAG" --ignore-scripts
191199
192200
# The registry usually serves a new version within seconds. A slow registry is not a failed release,
193201
# so this only warns.

‎CHANGELOG.md‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
All notable changes to the `convertapi` npm package. Versions follow [Semantic Versioning](https://semver.org/);
44
each one is a GitHub Release `v{version}` (see [RELEASING.md](RELEASING.md)).
55

6-
## 1.15.1 - 2026-10-20
6+
## 1.15.2 - 2026-10-20
7+
8+
The first release from the new pipeline. v1.15.1 was tagged but never reached npm: its publish workflow
9+
passed the tarball as `out/...`, which npm reads as a GitHub repository.
710

811
- Require axios 1.20.0 or later (was 1.6.2), which pulls in fixed follow-redirects and form-data. This
912
closes the high and critical advisories in what `npm install convertapi` resolves, among them

0 commit comments

Comments
 (0)