Skip to content
Open
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
82 changes: 0 additions & 82 deletions .circleci/config.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ tests/
CLAUDE.md
README.md
.gitignore
.circleci/
LICENSE
.github/
80 changes: 80 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: CI

on:
push:
pull_request:

permissions:
contents: read

jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Deno
uses: denoland/setup-deno@v2
with:
deno-version: 2.7.6
- name: Build executable
run: |
touch persist.dat
deno compile \
--allow-read \
--allow-write=./persist.dat \
--allow-net=0.0.0.0:3000 \
--allow-env=HOST,PORT,PERSIST,QUEUE_API_TOKEN \
main.ts
- name: Run tests
run: deno test --allow-read --allow-write --allow-net --allow-env --allow-run

mutation-mutasaurus:
name: Mutation testing (Mutasaurus)
needs: test
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Deno
uses: denoland/setup-deno@v2
with:
deno-version: 2.7.6
- name: Run Mutasaurus
run: |
touch persist.dat
deno run \
--allow-read \
--allow-write \
--allow-net \
--allow-env \
--allow-run \
--allow-sys \
--allow-ffi \
--node-modules-dir=auto \
mutation/mutasaurus_ci.ts

mutation-stryker:
name: Mutation testing (Stryker)
needs: mutation-mutasaurus
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Set up Deno
uses: denoland/setup-deno@v2
with:
deno-version: 2.7.6
- name: Install StrykerJS
run: npm install --no-save --no-package-lock @stryker-mutator/core
- name: Run StrykerJS
run: |
touch persist.dat
npx --no-install stryker run mutation/stryker.config.json
node mutation/stryker_check.js
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
/target/
/node_modules/
/.stryker-tmp/sandbox-*/
mutation/stryker-report.json
/.claude/
CLAUDE.md
4 changes: 2 additions & 2 deletions .serena/memories/project/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
Fast, lightweight, persistence-optional FIFO queue service written in TypeScript for Deno. Provides HTTP API for enqueue, dequeue, length, peek, queues list, and health check endpoints.

## Tech Stack
- **Runtime**: Deno 2.7.6 (critical - must match CI image)
- **Runtime**: Deno 2.7.6 (critical - must match the GitHub Actions workflow)
- **Language**: TypeScript
- **Imports**: JSR format (e.g. `jsr:@std/cli@1.0/parse-args`)
- **CI**: CircleCI (image: `denoland/deno:2.7.6`)
- **CI**: GitHub Actions (`.github/workflows/ci.yml`)

## Commands
- **Test**: `deno test --allow-all` (permission flags required for file I/O tests)
Expand Down
13 changes: 7 additions & 6 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,16 @@ and respect .serena as integral project tooling

**Main branch requires Deno 2.7.6**

### CircleCI Configuration
### GitHub Actions Configuration

The `.circleci/config.yml` must match the Deno version:
The `.github/workflows/ci.yml` must match the Deno version:
```yaml
docker:
- image: denoland/deno:2.7.6
uses: denoland/setup-deno@v2
with:
deno-version: 2.7.6
```

**If you upgrade Deno, ALWAYS update this image or CI will fail.**
**If you upgrade Deno, ALWAYS update this workflow or CI will fail.**

### Standard Library Imports

Expand Down Expand Up @@ -61,7 +62,7 @@ Test HTTP handler behaviour with real requests, not internal implementation deta

## Common Diagnostics

**CircleCI fails?** Check: (1) CircleCI Deno version matches code (2) Import format (jsr: vs deno.land) (3) Using Deno 2.x-only APIs
**GitHub Actions fails?** Check: (1) workflow Deno version matches code (2) import format (jsr: vs deno.land) (3) use of Deno 2.x-only APIs

**Merge blocked?** `gh api repos/jonbaldie/queue/branches/main/protection --jq '.enforce_admins.enabled'` — if true, disable with DELETE before merging with --admin

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Fast, portable queue server written in Typescript and built with Deno.

[![CircleCI](https://circleci.com/gh/jonbaldie/queue/tree/main.svg?style=shield)](https://circleci.com/gh/jonbaldie/queue/tree/main)
[![CI](https://github.com/jonbaldie/queue/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/jonbaldie/queue/actions/workflows/ci.yml)

## Introduction

Expand Down
Loading