Add CI and README
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
name: Bun CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install bun
|
||||||
|
uses: oven-sh/setup-bun@v2
|
||||||
|
- name: Install dependencies
|
||||||
|
run: bun install --include=dev
|
||||||
|
- name: Check formatting
|
||||||
|
run: bun run check
|
||||||
|
- name: Run tests
|
||||||
|
run: bun run test
|
||||||
@@ -1,4 +1,22 @@
|
|||||||
# aoc
|
# Advent of Code
|
||||||
|
|
||||||
|
> [LANGUAGE: TypeScript]
|
||||||
|
>
|
||||||
|
> [RUNTIME: Bun]
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
Every solution is grouped by its year and day and (usually) consists of five files:
|
||||||
|
|
||||||
|
| Filename | Purpose |
|
||||||
|
| ----------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
||||||
|
| `<year>/<day>/index.ts` | Has the solution. Exports two functions: `solveFirst(string): number` and `solveSecond(string): number` |
|
||||||
|
| `<year>/<day>/index.test.ts` | Unit test using the example input and expected solution. |
|
||||||
|
| `<year>/<day>/run.ts` | Basic run script: Loading the actual input and passing it into the two solve functions. |
|
||||||
|
| `<year>/<day>/input.txt` | Input text from AOC. |
|
||||||
|
| `<year>/<day>/<year>-<day>.run.xml` | IntelliJ/Webstorm runfile for `run.ts` using Bun. |
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
To install dependencies:
|
To install dependencies:
|
||||||
|
|
||||||
@@ -6,10 +24,21 @@ To install dependencies:
|
|||||||
bun install
|
bun install
|
||||||
```
|
```
|
||||||
|
|
||||||
To run:
|
To test all days:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bun run src/index.ts
|
bun run test
|
||||||
```
|
```
|
||||||
|
|
||||||
This project was created using `bun init` in bun v1.1.36. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
|
To create a new day-folder:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun run copy.ts
|
||||||
|
```
|
||||||
|
|
||||||
|
To run a single day, first copy your input file from `https://adventofcode.com/<year>/day/<day>/input` into
|
||||||
|
`<year>/<day>/input.txt`. Then run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun run <year>/<day>/run.ts
|
||||||
|
```
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
"name": "aoc",
|
"name": "aoc",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"author": "Pascal Syma <pascal@syma.dev> (https://syma.dev/)",
|
"author": "Pascal Syma <pascal@syma.dev> (https://syma.dev/)",
|
||||||
|
"license": "All rights reserved.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "prettier --write .",
|
"format": "prettier --write .",
|
||||||
"check": "prettier --check .",
|
"check": "prettier --check .",
|
||||||
|
|||||||
Reference in New Issue
Block a user