Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4823b69
Update README.md
MahmoudFarah003 Mar 10, 2026
ba09df4
Update README.md
MahmoudFarah003 Mar 10, 2026
0f4a82f
add ci workflow
MahmoudFarah003 Mar 10, 2026
f071e33
fix ci workflow
MahmoudFarah003 Mar 10, 2026
e1db59c
fix ci
MahmoudFarah003 Mar 10, 2026
e1f650c
add example test
MahmoudFarah003 Mar 10, 2026
06e8197
run tests in ci
MahmoudFarah003 Mar 10, 2026
2108740
break test
MahmoudFarah003 Mar 10, 2026
af166b5
fix test
MahmoudFarah003 Mar 10, 2026
64b3d90
coverage added
MahmoudFarah003 Mar 10, 2026
0f5ee9e
add coverage to CI
MahmoudFarah003 Mar 10, 2026
f592edb
Add test badge to README
MahmoudFarah003 Mar 10, 2026
bc711bd
Add Style job to CI workflow
MahmoudFarah003 Mar 10, 2026
642de5a
Fix CI workflow: add Style job as independent job
MahmoudFarah003 Mar 10, 2026
84d9a4f
Fix formatting issues
MahmoudFarah003 Mar 10, 2026
fd8da3c
Fix YAML syntax in CI workflow
MahmoudFarah003 Mar 10, 2026
dc4679f
Add lint step to CI
MahmoudFarah003 Mar 11, 2026
7df6733
Remove unused function
MahmoudFarah003 Mar 11, 2026
e35add0
Fix formatting
MahmoudFarah003 Mar 11, 2026
7f6818e
Add lint step to CI style job
MahmoudFarah003 Mar 11, 2026
a00277c
trigger ci
MahmoudFarah003 Mar 11, 2026
c155556
fix prettier formatting
MahmoudFarah003 Mar 11, 2026
1b99753
Fail CI on lint warnings
MahmoudFarah003 Mar 11, 2026
fb89036
Add security lint check
MahmoudFarah003 Mar 11, 2026
eadd5bf
Fix Security Issues
MahmoudFarah003 Mar 11, 2026
627119d
security fixed
MahmoudFarah003 Mar 11, 2026
9c3fa60
security fixedd
MahmoudFarah003 Mar 11, 2026
fde8aec
fix securityy
MahmoudFarah003 Mar 11, 2026
d9d8b85
Fix CI workflow and security issues
MahmoudFarah003 Mar 11, 2026
9417bbc
Fix users.ts security and formatting
MahmoudFarah003 Mar 11, 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
54 changes: 54 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: CI

on:
pull_request:
branches: [main]

jobs:
test:
name: Test
runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 22

- name: Install dependencies
run: npm ci

- name: Run tests
run: npm run test -- --coverage

style:
name: Style
runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 22

- name: Install dependencies
run: npm ci

- name: Fix formatting (optional)
run: npm run format:write

- name: Check formatting
run: npm run format:check

- name: Check linting
run: npm run lint -- --max-warnings=0
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# learn-cicd-typescript-starter (Notely)

![Tests](https://github.com/MahmoudFarah003/learn-cicd-typescript-starter/actions/workflows/ci.yml/badge.svg)
This repo contains the typescript starter code for the "Notely" application for the "Learn CICD" course on [Boot.dev](https://boot.dev).

## Local Development
Expand All @@ -22,3 +22,4 @@ 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!

19 changes: 19 additions & 0 deletions eslint.config.js
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,
]);
Loading