Skip to content
Closed
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
61 changes: 61 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: CI

on:
push:
branches: [ "master", "main" ]
pull_request:
branches: [ "master", "main" ]

jobs:
test:
name: Run Unit and E2E Tests
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Run Typecheck
run: npm run typecheck

- name: Run Unit Tests (Vitest)
run: npm run test

- name: Get Playwright version
id: playwright-version
run: echo "PLAYWRIGHT_VERSION=$(npx playwright --version | awk '{print $2}')" >> $GITHUB_ENV

- name: Cache Playwright Browsers
uses: actions/cache@v4
id: playwright-cache
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}

- name: Install Playwright Browsers
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: npx playwright install --with-deps chromium

- name: Install Playwright OS Dependencies
if: steps.playwright-cache.outputs.cache-hit == 'true'
run: npx playwright install-deps chromium

- name: Run E2E Tests (Playwright)
run: npm run test:e2e

- name: Upload Playwright report
uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 7
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,8 @@ dist-ssr
!.vscode/extensions.json
.idea
.DS_Store

# Testing
coverage/
playwright-report/
test-results/
7 changes: 3 additions & 4 deletions notes
Original file line number Diff line number Diff line change
Expand Up @@ -99,15 +99,15 @@
- [ ] public highscores for public github repos
- [ ] goto teleporter seems to get active for "harmless" gotos (e.g: error handling in linux kernel crypto code) which results in in-room-teleporters. quite disorienting. but then again, they point out exactly why goto is evil lol - keep some of them, but "in room teleporters" should be an exception and not happen regulary
- [ ] level feel "unpopulated" at times, needs more enemies to shoot at
- [ ] fixme triggered mines are sometimes placed so close to the spawn point that it results in insta-damage
- [ ] fixme triggered mines and traps are sometimes placed so close to the spawn point that it results in insta-damage
- [ ] elite enemies should have not only their usual loot, but also drop a guaranteed unlockable weapon additionally (two drops)
- [ ] normal enemies should have a tiny chance of dropping a unlockable weapon, on top of their usual drops
- [ ] reorder weapon hotkeys - 3 is unused because it was the knife once. there should be no "holes" between the hotkeys
- [ ] unlockable flamethrower, cone aoe, called "Friday Hotfix". Same drop/unlock mechanics as the existing ones. forced unlock at level 12. Uses dedicated ammo "Gas", to be dropped like other ammo
- [ ] still annoyingly long corridors at times. if we cant solve it with geometry, add random rooms and enemies (called "edge case", visually different from other enemies and smaller) there to break the "endless walk feeling"
- [ ] collect X of Y, or kill >=Z%, to unlock exit?
- [ ] find well suited github repos and suggest them in the github loader
- [ ] more secret rooms for loot (and chance for enemy)
- [ ] havent seen a single secret rooms for loot (and chance for enemy) so far, we need to find more ways to trigger them
- [ ] enhance soundfx, esp. weapons
- [ ] control info in the windowed ui below the canvas looks like shit
- [ ] show proper introscreen when no workspace is loaded instead of the current minimal text, what this is, how it works, etc
Expand All @@ -116,5 +116,4 @@
- [ ] if player collects an unlockable weapon he already has, it should add its ammotype instead of being "wasted"
- [ ] code parsing / world generation should show a loading screen or indicator, for large repos it can take a while (to test: use any linux kernel git)
- [ ] automap not really useful, should work like in diablo instead. rendering is also weird / wasting space.
- [ ] sometimes rooms without exit are generated, example: src/DockerManager.php of wrp-distributor - there it is even the spawn room. this should never ever happen. each room must have atleast one exit (that leads to atleast one room that has an exit, unlike the example)
- [ ] spawn sometimes happen right on a trap
- [ ] sometimes rooms without exit are generated, example: src/DockerManager.php of wrp-distributor - there it is even the spawn room. this should never ever happen. each room must have atleast one exit (that leads to atleast one room that has an exit, unlike the example) [note: cant repro]
Loading
Loading