Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
3a73606
update README for pull request assignment
naghamAM Mar 6, 2026
e1ca519
add failing CI workflow
naghamAM Mar 6, 2026
f42cf5d
update CI workflow to check node version
naghamAM Mar 6, 2026
2aad623
add tests for getAPIKey
naghamAM Mar 6, 2026
e88ba07
test CI failure with broken code
naghamAM Mar 6, 2026
33d7a8c
fix auth and run tests in CI
naghamAM Mar 6, 2026
3ecd86b
add coverage reporting to CI
naghamAM Mar 6, 2026
f0c9bbc
add CI badge to README
naghamAM Mar 6, 2026
b7ec98d
Merge pull request #1 from naghamAM/addtests
naghamAM Mar 6, 2026
45db03e
add prettier formatting scripts
naghamAM Mar 6, 2026
340194b
add style job to CI workflow
naghamAM Mar 6, 2026
2a79f4c
add eslint linting
naghamAM Mar 7, 2026
0b5736f
add lint step to ci
naghamAM Mar 7, 2026
94a5e80
remove unused function
naghamAM Mar 7, 2026
a5a9298
fix ci yaml syntax
naghamAM Mar 7, 2026
9e3d55b
format main.ts
naghamAM Mar 7, 2026
940d345
fail CI on security warnings
naghamAM Mar 8, 2026
085386b
fix security warnings
naghamAM Mar 8, 2026
d355488
fix ci yaml syntax
naghamAM Mar 8, 2026
1775acd
fix insecure pseudoRandomBytes
naghamAM Mar 8, 2026
b6488a9
trigger CI
naghamAM Mar 8, 2026
45544bb
remove pseudoRandomBytes comment
naghamAM Mar 8, 2026
f2881d2
fix prettier formatting
naghamAM Mar 8, 2026
27af540
add cd workflow
naghamAM Mar 9, 2026
8c3afe7
Merge pull request #2 from naghamAM/addtests
naghamAM Mar 9, 2026
4ce6090
trigger cd workflow
naghamAM Mar 9, 2026
0253f0c
update ci test command
naghamAM Mar 9, 2026
8542260
trigger ci run
naghamAM Mar 9, 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
20 changes: 20 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: CD

on:
push:
branches:
- main

jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 23

- run: npm ci
- run: npm run build
30 changes: 30 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: CI

on:
pull_request:
branches:
- main

jobs:
tests:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 23
- run: npm ci
- run: npm run test

style:
name: Style
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 23
- run: npm ci
- run: npm run format:check
- run: npm run lint
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
![CI](https://github.com/naghamAM/learn-cicd-typescript-starter/actions/workflows/ci.yml/badge.svg)

# learn-cicd-typescript-starter (Notely)

This repo contains the typescript starter code for the "Notely" application for the "Learn CICD" course on [Boot.dev](https://boot.dev).
Expand All @@ -22,3 +24,5 @@ npm run dev
_This starts the server in non-database mode._ It will serve a simple webpage at `http://localhost:8080`.

You do _not_ need to set up a database or any interactivity on the webpage yet. Instructions for that will come later in the course!

Nagham's version of Boot.dev's Notely app.
Empty file added eslint
Empty file.
20 changes: 20 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import pluginSecurity from "eslint-plugin-security";

export default [
{
ignores: ["dist/**", "node_modules/**"],
},
js.configs.recommended,
...tseslint.configs.recommended,
pluginSecurity.configs.recommended,
{
files: ["**/*.ts", "**/*.tsx", "**/*.js"],
languageOptions: {
parser: tseslint.parser,
globals: globals.node,
},
},
];
19 changes: 19 additions & 0 deletions eslint.config.jsu
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import { defineConfig } from "eslint/config";
import pluginSecurity from "eslint-plugin-security";

export default defineConfig([
{
files: ["**/*.{js,mjs,cjs,ts,mts,cts}"],
plugins: { js },
extends: ["js/recommended"],
},
{
files: ["**/*.{js,mjs,cjs,ts,mts,cts}"],
languageOptions: { globals: globals.node },
},
tseslint.configs.recommended,
pluginSecurity.configs.recommended,
]);
Empty file.
Loading