bank-account added #1575
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will do a clean install of node dependencies and run tests across different versions of node | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions | |
name: typescript / pr | |
on: pull_request | |
jobs: | |
precheck: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout PR | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab | |
- name: Use Node.js LTS (18.x) | |
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c | |
with: | |
node-version: 18.x | |
- name: Install project dependencies | |
run: yarn install --frozen-lockfile | |
- name: Run exercism/typescript ci precheck (stub files, config integrity) for changed exercises | |
run: | | |
PULL_REQUEST_URL=$(jq -r ".pull_request.url" "$GITHUB_EVENT_PATH") | |
curl --url $"${PULL_REQUEST_URL}/files?per_page=100" --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' | \ | |
jq -c '.[] | select(.status == "added" or .status == "modified") | select(.filename | match("\\.(js|jsx|ts|tsx|md|json)$")) | .filename' | \ | |
xargs -r yarn dlx -p @babel/core -p @babel/node babel-node scripts/pr-check | |
ci: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x, 20.x] | |
steps: | |
- name: Checkout PR | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Install project dependencies | |
run: yarn install --frozen-lockfile | |
- name: Run exercism/typescript ci (runs tests) for changed/added exercises | |
run: | | |
PULL_REQUEST_URL=$(jq -r ".pull_request.url" "$GITHUB_EVENT_PATH") | |
curl --url $"${PULL_REQUEST_URL}/files?per_page=100" --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' | \ | |
jq -c '.[] | select(.status == "added" or .status == "modified") | select(.filename | match("\\.(js|jsx|ts|tsx|md|json)$")) | .filename' | \ | |
xargs -r yarn dlx -p @babel/core -p @babel/node babel-node scripts/pr | |
impersonate: | |
# This job tries to run tests for the 'hello-world' exercise, but | |
# simulating what would happen if a student runs the tests standalone. | |
# We do this by removing all project files in the root. | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab | |
- name: Use Node.js 20.x | |
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c | |
with: | |
node-version: 20.x | |
- name: Remove root project files | |
run: rm -f package.json yarn.lock .yarnrc.yml | |
- name: Move solution file so that tests pass | |
working-directory: exercises/practice/hello-world | |
run: | | |
rm -f hello-world.ts | |
cp ./.meta/proof.ci.ts hello-world.ts | |
- name: Install project dependencies | |
working-directory: exercises/practice/hello-world | |
run: yarn install --no-immutable | |
- name: Run tests | |
working-directory: exercises/practice/hello-world | |
run: yarn test |