Skip to content

Commit

Permalink
Add smoke tests to CI (#51464)
Browse files Browse the repository at this point in the history
  • Loading branch information
jakebailey authored Nov 11, 2022
1 parent 2d5e372 commit 021fd20
Showing 1 changed file with 60 additions and 0 deletions.
60 changes: 60 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,66 @@ jobs:
- name: Build src
run: npx hereby build-src

smoke:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "*"
check-latest: true
- run: npm ci

- run: npx hereby lkg
- run: |
npm pack
mv typescript*.tgz typescript.tgz
echo "PACKAGE=$PWD/typescript.tgz" >> $GITHUB_ENV
- name: Smoke test
run: |
cd "$(mktemp -d)"
npm init --yes
npm install $PACKAGE tslib
npx tsc --version
echo '{"seq": 1, "command": "status"}' | npx tsserver
cat > smoke.js << EOF
const { __importDefault, __importStar } = require("tslib");
const ts = require(process.argv[2]);
// See: https://github.com/microsoft/TypeScript/pull/51474#issuecomment-1310871623
const fns = [
[() => ts.version, true],
[() => ts.default.version, false],
[() => __importDefault(ts).version, false],
[() => __importDefault(ts).default.version, true],
[() => __importStar(ts).version, true],
[() => __importStar(ts).default.version, true],
];
for (const [fn, shouldSucceed] of fns) {
let success = false;
try {
success = !!fn();
}
catch {}
if (success !== shouldSucceed) {
if (success) {
console.error(`${fn.toString()} unexpectedly succeeded.`);
}
else {
console.error(`${fn.toString()} did not succeed.`);
}
process.exitCode = 1;
}
}
EOF
node ./smoke.js typescript
node ./smoke.js typescript/lib/tsserverlibrary
misc:
runs-on: ubuntu-latest
Expand Down

0 comments on commit 021fd20

Please sign in to comment.