Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
921a6d5
Initial commit
hbeckmann Nov 14, 2024
313b322
initial project
hbeckmann Nov 15, 2024
d4ac030
db migrations, schema and working api
hbeckmann Nov 20, 2024
e2a2a07
fix formatting
hbeckmann Nov 22, 2024
e72e786
security changes
hbeckmann Nov 26, 2024
babe819
default prettier config
hbeckmann Dec 2, 2024
3aa20bf
security check
hbeckmann Dec 6, 2024
387a3e2
Fix npm command in README
waseem-medhat Dec 21, 2024
bead53e
Merge pull request #2 from bootdotdev/wm_fix_npm_cmd
waseem-medhat Dec 23, 2024
19f156a
Refactor error handling
waseem-medhat Mar 14, 2025
6513077
Merge pull request #18 from bootdotdev/wm_refactor_error_handling
waseem-medhat Mar 14, 2025
2d2f406
add name to readme
llmopsdev Aug 7, 2025
d8f4d4d
add name to readme
llmopsdev Aug 7, 2025
0bfcb08
ci
llmopsdev Aug 8, 2025
cd64995
ci
llmopsdev Aug 8, 2025
0d24d3b
fixed
llmopsdev Aug 8, 2025
8340c9c
fixed
llmopsdev Aug 8, 2025
fed50af
force fail test
llmopsdev Aug 12, 2025
09593fb
force fail test
llmopsdev Aug 12, 2025
9ff9473
fixed forced fail
llmopsdev Aug 12, 2025
8360498
fixed forced fail
llmopsdev Aug 12, 2025
3a2db26
add coverage
llmopsdev Aug 12, 2025
de8099f
add coverage
llmopsdev Aug 12, 2025
983ca0b
add badge
llmopsdev Aug 12, 2025
68914f9
add badge
llmopsdev Aug 12, 2025
f1d4924
Merge pull request #1 from llmopsdev/addtests
llmopsdev Aug 12, 2025
75343d4
style check
llmopsdev Aug 12, 2025
489505c
style check
llmopsdev Aug 12, 2025
2c2c75c
fixed ci
llmopsdev Aug 12, 2025
71c4d12
fixed ci
llmopsdev Aug 12, 2025
16c593d
lint ci
llmopsdev Aug 12, 2025
0618013
lint ci
llmopsdev Aug 12, 2025
948aa79
lint ci 2
llmopsdev Aug 12, 2025
14d6afe
lint ci 2
llmopsdev Aug 12, 2025
d931b0e
Merge pull request #2 from llmopsdev/addtests
llmopsdev Aug 12, 2025
71fa56d
eslint sec
llmopsdev Aug 12, 2025
c7d441d
eslint sec
llmopsdev Aug 12, 2025
b9cc12c
eslint do not allow warnings
llmopsdev Aug 12, 2025
c6d55c7
eslint do not allow warnings
llmopsdev Aug 12, 2025
55cac38
fix crypto
llmopsdev Aug 12, 2025
17bc71f
fix crypto
llmopsdev Aug 12, 2025
c447fd6
cd
llmopsdev Aug 12, 2025
a650721
cd
llmopsdev Aug 12, 2025
0b52873
Merge pull request #3 from llmopsdev/addtests
llmopsdev Aug 12, 2025
57e0145
fix cd
llmopsdev Aug 12, 2025
3d78b6c
fix cd
llmopsdev Aug 12, 2025
86098f2
Merge pull request #4 from llmopsdev/addtests
llmopsdev Aug 12, 2025
47caf2c
add v
llmopsdev Aug 12, 2025
548c391
add v
llmopsdev Aug 12, 2025
6950b5f
Merge pull request #5 from llmopsdev/addtests
llmopsdev Aug 12, 2025
5a9c82d
gcloud
llmopsdev Aug 12, 2025
5058038
fixed
llmopsdev Aug 12, 2025
62e8d5f
Ignore Google Cloud credentials file
llmopsdev Aug 12, 2025
4e6bd00
gcloud
llmopsdev Aug 12, 2025
48210b7
how
llmopsdev Aug 12, 2025
55d2477
how
llmopsdev Aug 12, 2025
21f42bf
deploy to gcloud cd
llmopsdev Aug 13, 2025
c9d2e68
fixed typo
llmopsdev Aug 13, 2025
22f8567
database migration cd
llmopsdev Aug 13, 2025
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
45 changes: 45 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: cd

on:
push:
branches: [main]

jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest

env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}

steps:
- name: Check out code
uses: actions/checkout@v4

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

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build

- name: Migrate
run: npm run db:migrate

- id: 'auth'
uses: 'google-github-actions/auth@v2'
with:
credentials_json: '${{ secrets.GCP_CREDENTIALS }}'

- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@v2'

- name: 'Setup Gcloud2'
run: gcloud builds submit --tag us-central1-docker.pkg.dev/notely-468822/notely-ar-repo/notely:latest
- name: 'Deploy to Cloud Run'
run: gcloud run deploy notely --image us-central1-docker.pkg.dev/notely-468822/notely-ar-repo/notely:latest --region us-central1 --allow-unauthenticated --project notely-468822 --max-instances=5

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

on:
pull_request:
branches: [main]

jobs:
tests:
name: Tests
runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v4

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

- 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

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

- name: Install dependencies
run: npm ci

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

- name: Lint
run: npm run lint -- --max-warnings=0

5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,8 @@ coverage/
dist/
.env
.vscode
<<<<<<< HEAD
=======
.notely-468822-f257a355389a.json
notely-468822-f257a355389a.json
>>>>>>> addtests
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
![STATUS](https://github.com/llmopsdev/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 +23,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!

LLMOPSDEV
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