Skip to content

Commit 3ed6bc7

Browse files
authored
Update config.yml
1 parent 4cf4ff3 commit 3ed6bc7

1 file changed

Lines changed: 105 additions & 40 deletions

File tree

.circleci/config.yml

Lines changed: 105 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
version: 2.1
2+
23
orbs:
34
slack: circleci/slack@3.4.2
45

@@ -61,7 +62,7 @@ jobs:
6162
name: Install dependencies
6263
command: bun install
6364
- run:
64-
name: Build Etherpot Modular SDK
65+
name: Build Etherspot Modular SDK
6566
command: bun run build
6667
- run:
6768
name: Checkout e2e repo and run tests
@@ -88,11 +89,13 @@ jobs:
8889
sed -i.bak "s/secondary_wallet_address/$SECONDARY_WALLET_ADDRESS/g" .env
8990
sed -i.bak "s/paymaster_address/$PAYMASTER_ADDRESS/g" .env
9091
sed -i.bak "s/sponsor_address/$SPONSOR_ADDRESS/g" .env
92+
9193
mv package.json temp.json
9294
jq -r '.dependencies."@etherspot/modular-sdk" |= "file:../etherspot-modular-sdk"' temp.json > package.json
9395
rm temp.json
96+
9497
npm i
95-
npm run test-all-chains
98+
npm run test-all-chains
9699
- store_artifacts:
97100
path: /home/circleci/e2e-sdk-modular/reports
98101
destination: test-report
@@ -107,6 +110,7 @@ jobs:
107110
echo "❌ Aggregated mochawesome report not found at $MOCHAWESOME_JSON_FILE"
108111
exit 0
109112
fi
113+
110114
TOTAL_SUITES=$(jq '.stats.suites' $MOCHAWESOME_JSON_FILE)
111115
TOTAL_PASSES=$(jq '.stats.passes' $MOCHAWESOME_JSON_FILE)
112116
TOTAL_PENDING=$(jq '.stats.pending' $MOCHAWESOME_JSON_FILE)
@@ -119,64 +123,125 @@ jobs:
119123
END_TIME_FORMATTED=$(date -d "$END_TIME" "+%Y-%m-%d %H:%M:%S")
120124
DURATION_MIN=$(awk "BEGIN {printf \"%.2f\",${DURATION_MS}/60000}")
121125
122-
123126
jq -r '.results[] | .suites[] | select(.failures > 0) | {suite: .title, tests: [.tests[] | select(.fail) | .title]} | select(.tests | length > 0) |
124127
"*Suite:* \(.suite)\n*Failing Tests:* \n\(.tests | map("- " + .) | join("\n"))\n"' $MOCHAWESOME_JSON_FILE > $FAILED_TESTS_FILE
125128
126129
if [ -s $FAILED_TESTS_FILE ]; then
127130
MESSAGE=$(cat $FAILED_TESTS_FILE)
128-
SLACK_MESSAGE=":x: *E2E Tests Failed :x: *\n\
129-
*Project:* ${CIRCLE_PROJECT_REPONAME}\n\
130-
*Triggered by:* ${CIRCLE_USERNAME}\n\
131-
*Branch:* ${CIRCLE_BRANCH}\n\
132-
*Commit:* <https://github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/commit/${CIRCLE_SHA1}|${CIRCLE_SHA1}>\n\n\
133-
*Test Summary:*\n\
134-
*Total Suites:* ${TOTAL_SUITES}\n\
135-
*Passes:* ${TOTAL_PASSES}\n\
136-
*Pending:* ${TOTAL_PENDING}\n\
137-
*Failures:* ${TOTAL_FAILURES}\n\
138-
*Start Time:* ${START_TIME_FORMATTED}\n\
139-
*End Time:* ${END_TIME_FORMATTED}\n\
140-
*Duration:* ${DURATION_MIN} minutes\n\n\
141-
*Failed Tests:*\n${MESSAGE}\n\
142-
*Report:* <https://output.circle-artifacts.com/output/job/${CIRCLE_WORKFLOW_JOB_ID}/artifacts/${CIRCLE_NODE_INDEX}/tmp/mochawesome-report/mochawesome.html|View HTML Report>\n\
143-
*Job:* <https://circleci.com/gh/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/${CIRCLE_BUILD_NUM}|View Job>"
131+
SLACK_MESSAGE=":x: *E2E Tests Failed :x:*\n\
132+
*Project:* ${CIRCLE_PROJECT_REPONAME}\n\
133+
*Triggered by:* ${CIRCLE_USERNAME}\n\
134+
*Branch:* ${CIRCLE_BRANCH}\n\
135+
*Commit:* <https://github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/commit/${CIRCLE_SHA1}|${CIRCLE_SHA1}>\n\n\
136+
*Test Summary:*\n\
137+
*Total Suites:* ${TOTAL_SUITES}\n\
138+
*Passes:* ${TOTAL_PASSES}\n\
139+
*Pending:* ${TOTAL_PENDING}\n\
140+
*Failures:* ${TOTAL_FAILURES}\n\
141+
*Start Time:* ${START_TIME_FORMATTED}\n\
142+
*End Time:* ${END_TIME_FORMATTED}\n\
143+
*Duration:* ${DURATION_MIN} minutes\n\n\
144+
*Failed Tests:*\n${MESSAGE}\n\
145+
*Report:* <https://output.circle-artifacts.com/output/job/${CIRCLE_WORKFLOW_JOB_ID}/artifacts/${CIRCLE_NODE_INDEX}/tmp/mochawesome-report/mochawesome.html|View HTML Report>\n\
146+
*Job:* <https://circleci.com/gh/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/${CIRCLE_BUILD_NUM}|View Job>"
144147
else
145-
SLACK_MESSAGE=":white_check_mark: All E2E tests passed\n\
146-
*Project:* ${CIRCLE_PROJECT_REPONAME}\n\
147-
*Triggered by:* ${CIRCLE_USERNAME}\n\
148-
*Branch:* ${CIRCLE_BRANCH}\n\
149-
*Commit:* <https://github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/commit/${CIRCLE_SHA1}|${CIRCLE_SHA1}>\n\
150-
*Job:* <https://circleci.com/gh/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/${CIRCLE_BUILD_NUM}|View Job>\n\
151-
*Report:* <https://output.circle-artifacts.com/output/job/${CIRCLE_WORKFLOW_JOB_ID}/artifacts/${CIRCLE_NODE_INDEX}/tmp/mochawesome-report/mochawesome.html|View HTML Report>\n\
152-
\n*Test Summary:*\n\
153-
*Total Suites:* ${TOTAL_SUITES}\n\
154-
*Passes:* ${TOTAL_PASSES}\n\
155-
*Pending:* ${TOTAL_PENDING}\n\
156-
*Failures:* ${TOTAL_FAILURES}\n\
157-
*Start Time:* ${START_TIME_FORMATTED}\n\
158-
*End Time:* ${END_TIME_FORMATTED}\n\
159-
*Duration:* ${DURATION_MIN} minutes"
148+
SLACK_MESSAGE=":white_check_mark: *All E2E tests passed!*\n\
149+
*Project:* ${CIRCLE_PROJECT_REPONAME}\n\
150+
*Triggered by:* ${CIRCLE_USERNAME}\n\
151+
*Branch:* ${CIRCLE_BRANCH}\n\
152+
*Commit:* <https://github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/commit/${CIRCLE_SHA1}|${CIRCLE_SHA1}>\n\
153+
*Job:* <https://circleci.com/gh/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/${CIRCLE_BUILD_NUM}|View Job>\n\
154+
*Report:* <https://output.circle-artifacts.com/output/job/${CIRCLE_WORKFLOW_JOB_ID}/artifacts/${CIRCLE_NODE_INDEX}/tmp/mochawesome-report/mochawesome.html|View HTML Report>\n\n\
155+
*Test Summary:*\n\
156+
*Total Suites:* ${TOTAL_SUITES}\n\
157+
*Passes:* ${TOTAL_PASSES}\n\
158+
*Pending:* ${TOTAL_PENDING}\n\
159+
*Failures:* ${TOTAL_FAILURES}\n\
160+
*Start Time:* ${START_TIME_FORMATTED}\n\
161+
*End Time:* ${END_TIME_FORMATTED}\n\
162+
*Duration:* ${DURATION_MIN} minutes"
160163
fi
161164
162165
curl -X POST -H 'Content-type: application/json' --data '{"text":"'"$SLACK_MESSAGE"'"}' $E2E_SLACK_WEBHOOK_URL
163166
164-
167+
publish-npm-package:
168+
working_directory: ~/etherspot-modular-sdk
169+
docker:
170+
- image: cimg/node:20.11.1
171+
auth:
172+
username: $DOCKERHUB_USER
173+
password: $DOCKERHUB_PASSWORD
174+
steps:
175+
- checkout
176+
- run:
177+
name: Install Bun
178+
command: |
179+
curl -fsSL https://bun.sh/install | bash
180+
echo 'export BUN_INSTALL="$HOME/.bun"' >> $BASH_ENV
181+
echo 'export PATH="$BUN_INSTALL/bin:$PATH"' >> $BASH_ENV
182+
source $BASH_ENV
183+
- restore_cache:
184+
key: dependency-cache-{{ checksum "bun.lockb" }}
185+
- run:
186+
name: Authenticate with registry
187+
command: echo "//registry.npmjs.org/:_authToken=$ETHERSPOT_NPM_TOKEN" > ~/etherspot-modular-sdk/.npmrc
188+
- run:
189+
name: Install dependencies
190+
command: bun install
191+
- run:
192+
name: Build Etherspot Modular SDK
193+
command: bun run build
194+
- run:
195+
name: Publish package to npm
196+
command: |
197+
cd ~/etherspot-modular-sdk
198+
bun publish --access public
199+
- run:
200+
name: Announce Publish
201+
command: |
202+
chmod +x .circleci/announcePublish.sh
203+
.circleci/announcePublish.sh "Etherspot Modular SDK" "$(node -e "console.log(require('./package.json').version)")"
204+
205+
publish-github-release:
206+
docker:
207+
- image: ardd97/ghr
208+
steps:
209+
- checkout
210+
- run:
211+
name: Publish Release on GitHub
212+
command: |
213+
PACKAGE_VERSION="$(jq .version package.json -r)"
214+
echo $PACKAGE_VERSION
215+
ghr -t "${GITHUB_TOKEN}" -u "${CIRCLE_PROJECT_USERNAME}" -r "${CIRCLE_PROJECT_REPONAME}" -c "${CIRCLE_SHA1}" "$PACKAGE_VERSION"
216+
165217
workflows:
166218
install-and-publish:
167219
jobs:
168220
- install:
169221
context: general-vars
170222
filters:
171223
branches:
172-
only:
173-
- e2e-modular
224+
only: master
174225

175226
- e2e-tests:
176227
name: testnet-e2e-tests
177228
context: general-vars
178229
filters:
179230
branches:
180-
only:
181-
- e2e-modular
182-
231+
only: master
232+
233+
- publish-npm-package:
234+
context: general-vars
235+
requires:
236+
- testnet-e2e-tests
237+
filters:
238+
branches:
239+
only: master
240+
241+
- publish-github-release:
242+
context: general-vars
243+
requires:
244+
- publish-npm-package
245+
filters:
246+
branches:
247+
only: master

0 commit comments

Comments
 (0)