Skip to content

Commit 013125e

Browse files
committed
fix(ci): restore checks and ssh clone e2e
1 parent f87ee3e commit 013125e

20 files changed

Lines changed: 847 additions & 506 deletions

.github/workflows/check.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ jobs:
2525
uses: ./.github/actions/setup
2626
- name: Build (docker-git package)
2727
run: bun run --cwd packages/app build
28+
- name: Build (api)
29+
run: bun run --cwd packages/api build
2830

2931
types:
3032
name: Types
@@ -38,6 +40,8 @@ jobs:
3840
run: bun run --cwd packages/app check
3941
- name: Typecheck (lib)
4042
run: bun run --cwd packages/lib typecheck
43+
- name: Typecheck (api)
44+
run: bun run --cwd packages/api typecheck
4145

4246
lint:
4347
name: Lint
@@ -51,6 +55,8 @@ jobs:
5155
run: bun run --cwd packages/app lint
5256
- name: Lint (lib)
5357
run: bun run --cwd packages/lib lint
58+
- name: Lint (api)
59+
run: bun run --cwd packages/api lint
5460

5561
test:
5662
name: Test
@@ -64,6 +70,8 @@ jobs:
6470
run: bun run --cwd packages/app test
6571
- name: Test (lib)
6672
run: bun run --cwd packages/lib test
73+
- name: Test (api)
74+
run: bun run --cwd packages/api test
6775

6876
lint-effect:
6977
name: Lint Effect-TS
@@ -140,3 +148,16 @@ jobs:
140148
run: docker version && docker compose version
141149
- name: Runtime volumes + host SSH CLI
142150
run: bash scripts/e2e/runtime-volumes-ssh.sh
151+
152+
e2e-clone-auto-open-ssh:
153+
name: E2E (Clone auto-open SSH)
154+
runs-on: ubuntu-latest
155+
timeout-minutes: 25
156+
steps:
157+
- uses: actions/checkout@v6
158+
- name: Install dependencies
159+
uses: ./.github/actions/setup
160+
- name: Docker info
161+
run: docker version && docker compose version
162+
- name: Clone auto-open SSH
163+
run: bash scripts/e2e/clone-auto-open-ssh.sh

.github/workflows/release.yml

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,19 @@ jobs:
4141
README_BACKUP=""
4242
README_CREATED="false"
4343
BACKUP_PKG="${PKG_DIR}/.package.json.release.bak"
44+
GROUP_COUNT=0
45+
46+
open_group() {
47+
echo "::group::$1"
48+
GROUP_COUNT=$((GROUP_COUNT + 1))
49+
}
50+
51+
close_group() {
52+
if [ "$GROUP_COUNT" -gt 0 ]; then
53+
echo "::endgroup::"
54+
GROUP_COUNT=$((GROUP_COUNT - 1))
55+
fi
56+
}
4457
4558
cleanup() {
4659
if [ -f "$BACKUP_PKG" ]; then
@@ -53,32 +66,47 @@ jobs:
5366
elif [ "$README_CREATED" = "true" ] && [ -f "$README_DEST" ]; then
5467
rm -f "$README_DEST" || true
5568
fi
69+
while [ "$GROUP_COUNT" -gt 0 ]; do
70+
close_group
71+
done
5672
rm -rf "$TMP_DIR"
5773
}
5874
trap cleanup EXIT
5975
6076
mkdir -p "$LOCAL_PACK_DIR" "$REMOTE_PACK_DIR"
6177
78+
open_group "Resolve package metadata"
6279
if [ -n "${NPM_TOKEN:-}" ]; then
6380
printf '%s\n' "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > "$HOME/.npmrc"
6481
fi
6582
6683
if ! LATEST_VERSION="$(npm view "${PKG_NAME}" version 2>/dev/null)"; then
84+
close_group
6785
echo "Package ${PKG_NAME} not found on npm; proceeding with release."
6886
echo "should_release=true" >> "$GITHUB_OUTPUT"
6987
exit 0
7088
fi
89+
echo "Package: ${PKG_NAME}"
90+
echo "Latest npm version: ${LATEST_VERSION}"
91+
close_group
7192
72-
REMOTE_TARBALL="$(npm pack "${PKG_NAME}@${LATEST_VERSION}" --silent --pack-destination "$REMOTE_PACK_DIR" | tail -n 1)"
93+
open_group "Download remote package"
94+
REMOTE_TARBALL="$(npm pack "${PKG_NAME}@${LATEST_VERSION}" --pack-destination "$REMOTE_PACK_DIR" | tail -n 1)"
7395
REMOTE_TAR_PATH="$REMOTE_PACK_DIR/$REMOTE_TARBALL"
96+
echo "Remote tarball: ${REMOTE_TAR_PATH}"
7497
if [ ! -f "$REMOTE_TAR_PATH" ]; then
98+
close_group
7599
echo "Unable to download ${PKG_NAME}@${LATEST_VERSION}; proceeding with release."
76100
echo "should_release=true" >> "$GITHUB_OUTPUT"
77101
exit 0
78102
fi
103+
close_group
79104
105+
open_group "Build current package"
80106
bun run --cwd packages/app build
107+
close_group
81108
109+
open_group "Prepare package README"
82110
if [ -f "$README_DEST" ]; then
83111
README_BACKUP="${TMP_DIR}/README.backup"
84112
cp "$README_DEST" "$README_BACKUP"
@@ -87,47 +115,60 @@ jobs:
87115
fi
88116
mkdir -p "$(dirname "$README_DEST")"
89117
cp README.md "$README_DEST"
118+
close_group
90119
120+
open_group "Prune package manifest"
91121
cp "$PKG_PATH" "$BACKUP_PKG"
92122
bun x @prover-coder-ai/dist-deps-prune apply \
93123
--package "$PKG_PATH" \
94124
--prune-dev true \
95-
--write \
96-
--silent
125+
--write
126+
close_group
97127
128+
open_group "Pack current package"
98129
LOCAL_TAR_PATH="$(cd "$PKG_DIR" && bun pm pack --quiet --ignore-scripts --destination "$LOCAL_PACK_DIR" | tail -n 1 | tr -d '\r')"
130+
echo "Local tarball: ${LOCAL_TAR_PATH}"
99131
if [ ! -f "$LOCAL_TAR_PATH" ]; then
132+
close_group
100133
echo "Unable to pack local ${PKG_NAME}; proceeding with release."
101134
echo "should_release=true" >> "$GITHUB_OUTPUT"
102135
exit 0
103136
fi
137+
close_group
104138
105139
LOCAL_DIR="${TMP_DIR}/local"
106140
REMOTE_DIR="${TMP_DIR}/remote"
107141
mkdir -p "$LOCAL_DIR" "$REMOTE_DIR"
108142
143+
open_group "Extract tarballs"
109144
tar -xzf "$LOCAL_TAR_PATH" -C "$LOCAL_DIR"
110145
tar -xzf "$REMOTE_TAR_PATH" -C "$REMOTE_DIR"
146+
close_group
111147
112148
LOCAL_PKG="${LOCAL_DIR}/package/package.json"
113149
REMOTE_PKG="${REMOTE_DIR}/package/package.json"
114150
151+
open_group "Normalize package metadata"
115152
if [ ! -f "$LOCAL_PKG" ] || [ ! -f "$REMOTE_PKG" ]; then
153+
close_group
116154
echo "package.json missing in tarball; proceeding with release."
117155
echo "should_release=true" >> "$GITHUB_OUTPUT"
118156
exit 0
119157
fi
120158
121159
bun -e "const p=process.argv[1];const sort=(v)=>Array.isArray(v)?v.map(sort):v&&typeof v==='object'?Object.keys(v).sort().reduce((acc,k)=>{acc[k]=sort(v[k]);return acc;},{}):v;const pkg=JSON.parse(await Bun.file(p).text());delete pkg.gitHead;pkg.version='0.0.0';const norm=sort(pkg);await Bun.write(p, JSON.stringify(norm, null, 2)+'\n');" "$LOCAL_PKG"
122160
bun -e "const p=process.argv[1];const sort=(v)=>Array.isArray(v)?v.map(sort):v&&typeof v==='object'?Object.keys(v).sort().reduce((acc,k)=>{acc[k]=sort(v[k]);return acc;},{}):v;const pkg=JSON.parse(await Bun.file(p).text());delete pkg.gitHead;pkg.version='0.0.0';const norm=sort(pkg);await Bun.write(p, JSON.stringify(norm, null, 2)+'\n');" "$REMOTE_PKG"
161+
close_group
123162
163+
open_group "Compare package contents"
124164
if diff -qr "$LOCAL_DIR/package" "$REMOTE_DIR/package" >/dev/null 2>&1; then
125165
echo "::notice::No changes compared to ${PKG_NAME}@${LATEST_VERSION}. Skipping release."
126166
echo "should_release=false" >> "$GITHUB_OUTPUT"
127167
else
128168
echo "Package differs from ${PKG_NAME}@${LATEST_VERSION}; proceeding with release."
129169
echo "should_release=true" >> "$GITHUB_OUTPUT"
130170
fi
171+
close_group
131172
- name: Auto changeset (patch if no changeset exists)
132173
if: steps.compare_npm.outputs.should_release != 'false' && github.actor != 'github-actions[bot]'
133174
shell: bash

0 commit comments

Comments
 (0)