Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: monthly
time: "07:00"
open-pull-requests-limit: 10
- package-ecosystem: npm
directory: '/'
schedule:
interval: monthly
time: '07:00'
open-pull-requests-limit: 10
24 changes: 15 additions & 9 deletions .github/workflows/build-lambda-function.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,27 @@
name: Build Lambda function
on: workflow_dispatch
on:
pull_request:
branches:
- master
workflow_dispatch:

jobs:
tsc:
name: Compile TypeScript
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout code
uses: actions/checkout@v6
- name: Enable corepack
run: corepack enable
- name: Use Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 22
node-version: 24
cache: yarn
- name: Compile TypeScript
run: scripts/build-lambda-grader.sh
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: build-lambda
path: build.tar.bz2
Expand All @@ -25,17 +30,18 @@ jobs:
name: Build native modules
needs: tsc
runs-on: ubuntu-latest
container: amazon/aws-lambda-nodejs:22
container: amazon/aws-lambda-nodejs:24
steps:
- name: install git and tar
run: yum install -y git tar bzip2 zip
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
- name: Checkout code
uses: actions/checkout@v6
- uses: actions/download-artifact@v4
with:
name: build-lambda
- name: Rebuild native modules
run: scripts/build-lambda-grader-in-docker.sh
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: graderzip
path: grader.zip
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/build-xvfb-layer.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
name: Build layer
on: workflow_dispatch
on:
pull_request:
branches:
- master
workflow_dispatch:

jobs:
xvfb:
name: Build Xvfb
runs-on: ubuntu-latest
container: amazon/aws-lambda-nodejs:22
container: amazon/aws-lambda-nodejs:24
steps:
- uses: actions/checkout@v4
- name: Checkout code
uses: actions/checkout@v6
- name: Build Xvfb
run: scripts/build-lambda-xvfb.sh
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: xvfbzip
path: /opt/xvfb.zip
Expand Down
110 changes: 110 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
name: Run CI

permissions:
contents: read

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
format-check:
name: Check code formatting
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Enable corepack
run: corepack enable
- name: Use Node.js
uses: actions/setup-node@v6
with:
node-version: 24
cache: yarn

- name: Install dependencies
run: yarn install --immutable

- name: Check formatting
run: yarn format:check

typecheck:
name: TypeScript type checking
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Enable corepack
run: corepack enable

- name: Use Node.js
uses: actions/setup-node@v6
with:
node-version: 24
cache: yarn

- name: Install dependencies
run: yarn install --immutable

- name: Run type checker
run: yarn typecheck

test:
name: Run tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Enable corepack
run: corepack enable

- name: Use Node.js
uses: actions/setup-node@v6
with:
node-version: 24
cache: yarn

- name: Install dependencies
run: yarn install --immutable

- name: Run tests
run: yarn test

- name: Upload coverage to Coveralls
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

build:
name: Build project
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Enable corepack
run: corepack enable

- name: Use Node.js
uses: actions/setup-node@v6
with:
node-version: 24
cache: yarn

- name: Install dependencies
run: yarn install --immutable

- name: Build TypeScript
run: yarn build

- name: Verify build output
run: |
test -f build/index.js || (echo "Build failed: index.js not found" && exit 1)
echo "Build successful!"
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@ node_modules/
*.map
build/
grader.zip

# Yarn
.yarn/install-state.gz
2 changes: 1 addition & 1 deletion .node-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
22.14.0
24.12.0
2 changes: 0 additions & 2 deletions .prettierrc → .prettierrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,5 @@
"semi": false,
"singleQuote": true,
"printWidth": 100,
"parser": "typescript",
"trailingComma": "none",
"arrowParens": "avoid"
}
3 changes: 3 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"recommendations": ["esbenp.prettier-vscode"]
}
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"files.insertFinalNewline": true
}
1 change: 1 addition & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nodeLinker: node-modules
Loading
Loading