Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
8085922
Update to NodeJS 24
RichDom2185 Jan 12, 2026
bd1cafb
Fix incorrect license
RichDom2185 Jan 12, 2026
228f949
Upgrade to latest Yarn and fix GL version
RichDom2185 Jan 12, 2026
4663ff9
Update workflows
RichDom2185 Jan 12, 2026
b5fa45a
Update gitignore
RichDom2185 Jan 12, 2026
75ff0a3
Deduplicate dependencies
RichDom2185 Jan 12, 2026
26101a4
Fix tests
RichDom2185 Jan 12, 2026
e14800a
Add more tests
RichDom2185 Jan 12, 2026
0ea2dd2
Install Prettier and add package scripts
RichDom2185 Jan 12, 2026
ee7ef89
Add editor settings
RichDom2185 Jan 12, 2026
8b4d188
Reformat codebase with Prettier
RichDom2185 Jan 12, 2026
6abf965
Update scripts
RichDom2185 Jan 12, 2026
bc02c82
Add basic CI workflow
RichDom2185 Jan 12, 2026
8e8b083
Fix deprecations
RichDom2185 Jan 12, 2026
2a16a80
Potential fix for code scanning alert no. 7: Workflow does not contai…
RichDom2185 Jan 12, 2026
6328421
Fix formatting
RichDom2185 Jan 12, 2026
1572cd6
Remove old Yarn option
RichDom2185 Jan 12, 2026
da30a09
Remove old logic
RichDom2185 Jan 12, 2026
6733e7f
Fix Node version
RichDom2185 Jan 12, 2026
337d76c
Fix script
RichDom2185 Jan 12, 2026
15b1526
Merge remote-tracking branch 'origin/master' into richard/2601-mainte…
sayomaki Aug 20, 2026
16acded
Update node version to latest
sayomaki Aug 20, 2026
8e10e9e
Dedupe dependencies
sayomaki Aug 20, 2026
6acbd93
Update tsconfig.json for TS7
sayomaki Aug 20, 2026
aab5eea
Fix js-slang imports
sayomaki Aug 20, 2026
8fa8091
Fix formatting
sayomaki Aug 20, 2026
53a6a59
Fix container not found for aws lambda
sayomaki Aug 20, 2026
7c57d1e
Attempt to fix CI for build xvfb
sayomaki Aug 20, 2026
97701cf
Another attempt to fix CI for building lambda
sayomaki Aug 20, 2026
4a7c7de
Fix CI for tests as xvfb is missing from github actions
sayomaki Aug 20, 2026
bd03c4d
Fix script for building xvfb on lambda
sayomaki Aug 20, 2026
3df0af7
Fix formatting for workflows
sayomaki Aug 20, 2026
6c73f9c
Another attempt to fix xvfb build on lambda
sayomaki Aug 20, 2026
ef8809a
Add more mirrors to download xvfb build dependencies
sayomaki Aug 20, 2026
412f1d0
Fix strip command for xvfb build script
sayomaki Aug 20, 2026
9621563
Remove dev dependencies from build output
sayomaki Aug 26, 2026
7543aaf
Bump actions to v7
sayomaki Aug 26, 2026
08741b3
Bump delete-artifact to v6
sayomaki Aug 26, 2026
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
28 changes: 17 additions & 11 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@v7
- name: Enable corepack
run: corepack enable
- name: Use Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
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@v7
with:
name: build-lambda
path: build.tar.bz2
Expand All @@ -25,22 +30,23 @@ jobs:
name: Build native modules
needs: tsc
runs-on: ubuntu-latest
container: amazon/aws-lambda-nodejs:22
container: amazon/aws-lambda-nodejs:24-x86_64
steps:
- name: install git and tar
run: yum install -y git tar bzip2 zip
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
run: dnf install -y git tar bzip2 zip
- name: Checkout code
uses: actions/checkout@v7
- uses: actions/download-artifact@v7
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@v7
with:
name: graderzip
path: grader.zip
if-no-files-found: error
- uses: geekyeggo/delete-artifact@v2
- uses: geekyeggo/delete-artifact@v6
with:
failOnError: false
name: build-lambda
15 changes: 11 additions & 4 deletions .github/workflows/build-xvfb-layer.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
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-x86_64
steps:
- uses: actions/checkout@v4
- name: install git and tar
run: dnf install -y git tar bzip2 zip
- name: Checkout code
uses: actions/checkout@v7
- name: Build Xvfb
run: scripts/build-lambda-xvfb.sh
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v7
with:
name: xvfbzip
path: /opt/xvfb.zip
Expand Down
117 changes: 117 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
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@v7
- name: Enable corepack
run: corepack enable
- name: Use Node.js
uses: actions/setup-node@v7
with:
node-version: 24
cache: yarn

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

- name: Check formatting
run: yarn format:check

typecheck:
Comment thread Fixed
name: TypeScript type checking
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v7

- name: Enable corepack
run: corepack enable

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

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

- name: Run type checker
run: yarn typecheck

test:
Comment thread Fixed
name: Run tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v7

- name: Enable corepack
run: corepack enable

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

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

- name: Install Xvfb and software GL
run: |
sudo apt-get update
sudo apt-get install -y xvfb libgl1-mesa-dri

- name: Run tests
run: xvfb-run --auto-servernum --server-args="-screen 0 1024x768x24 -ac" yarn test
env:
LIBGL_ALWAYS_SOFTWARE: '1'

- 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:
Comment thread Fixed
name: Build project
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v7

- name: Enable corepack
run: corepack enable

- name: Use Node.js
uses: actions/setup-node@v7
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!"
Comment thread Fixed
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.19.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