From bbc674ddcabc09f8f0ecbdc7d979149be797ac60 Mon Sep 17 00:00:00 2001 From: Jay-Jay-Capacity Date: Sat, 20 Sep 2025 11:40:23 +0200 Subject: [PATCH 01/15] README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c2bec0368b..22cc2859aa 100644 --- a/README.md +++ b/README.md @@ -21,3 +21,5 @@ go build -o notely && ./notely *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! + +Fortune's version of Boot.dev's Notely app. From 8611bc933015eba60f3cde808a832fe07992b0e7 Mon Sep 17 00:00:00 2001 From: Fortune Achigbu Date: Sun, 21 Sep 2025 23:25:11 +0200 Subject: [PATCH 02/15] .github/workflows/ci.yml --- .DS_Store | Bin 0 -> 6148 bytes .github/workflows/ci.yml | 22 ++++++++++++++++++++++ internal/.DS_Store | Bin 0 -> 6148 bytes sql/.DS_Store | Bin 0 -> 6148 bytes vendor/.DS_Store | Bin 0 -> 6148 bytes 5 files changed, 22 insertions(+) create mode 100644 .DS_Store create mode 100644 .github/workflows/ci.yml create mode 100644 internal/.DS_Store create mode 100644 sql/.DS_Store create mode 100644 vendor/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c54830abb5bcefbfcfc3bba6acdc52cbb888d020 GIT binary patch literal 6148 zcmeHLO-=$a6n+(gC>xd}CZ-D$7bYqf(2-zVxWoe>V2}hDen!``aHokHFQ6+g;1!H_ z&@*@dUHQGXLdyV4V@O}pelvaV&HLt?nU+FCqIA(H66J{~i^iBJSXPn)09Vr(9R>e1`Rp5l?XRwo?unHT5qA~kg_ z(~#=m)WT^*LzfjjgVjWY&FT7X#3>OqW;8p>=KaJ{}JX?vR z*R5COdKuJ<@H`?YPb@ z08C?88IE}`!8y`kU@+DQ4@~G(piUKLiy?G6#-)i148|IDItjD+5T>#)I~1X+$;LhqL$pZjwLq3U~z;N&%5BSIQ;al3805H^*zOM605)aa^oX mrJys*u{z+TnEzK$2A|{uU|=xTh!L3oA)sXNomb#b75D+_A;_x$ literal 0 HcmV?d00001 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000000..a54d8248d5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,22 @@ +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 Go + uses: actions/setup-go@v5 + with: + go-version: "1.25.1" + + - name: Force Failure + run: (exit 1) \ No newline at end of file diff --git a/internal/.DS_Store b/internal/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1d3f4949b391879efc1e840bab63a4a94b98f077 GIT binary patch literal 6148 zcmeHKOHRWu5S=Mm1ffb@vh)>t0c5IF9H46?2tjnwkV>?BUxNc74#72G&l`^wVx@G6 zP&FfspEDoZdA2e!5%FT*%!y`1R6+$O=V%Uy_(exDNfvRkjInu|uO7N~JBl>Je`P@S zuAqC`(~j2p{_)q)*LGD^Z@L<`GTh$0eO$d?=lJ?8UI zKM%zW*YWz?uVXY;+x@KPSX{m?FY7Wf28;n?;M5sF%@!#y6sl!I}=cOL0D7P}FqdI5WmcGjqD3 zaGV`>7sH9YqP50=F_1HGrjIkJ|I6R+|9O%<83V?^Nio1hwW=0)rBqu-FDJFuLGPd< n5*HNv6m()KMy!opgXcVNiqxVm|_r25XFgKV{$>jQmW7 literal 0 HcmV?d00001 diff --git a/sql/.DS_Store b/sql/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..4832d0154da81984198a59cf42057f206691b67c GIT binary patch literal 6148 zcmeHKK~BR!475uHL0l?M9QO@bBW;~uxzu#|we3+>MKM`a6Iim-=c~8R^Y@D`uh}oWmUDSqHg^ly zh7M^(Q<@{Al5X^E+SvKyr+qt@r_pK= zXTTY725JW6`w*alxnWdHpAHPE1pxN3oCI^}B_t*o=7v!b76@x7P(#^T4AyY02lLAf zqoRfrTl2woXSNQ7)7`OuNbbbBqL0piGtgwAGfhEWkK5dRTKH2B~Q{3!!peQHjQ literal 0 HcmV?d00001 diff --git a/vendor/.DS_Store b/vendor/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..87d982c16e4d13749884a45ea0502134b1b8da49 GIT binary patch literal 6148 zcmeHKF;2rU6n!ogYJs6614Fn#MK6Ft6(+`BptO~mq6Sxp4s1C>FTepf1_NSeW#JUe zyl-1=LKma8KgWLGd3llI7=Y<7Cq1A8pv4qywApM4nU}0YBa9pnjay@h5xN+| zBCD`<;4eBL?`{uM%y5eoh4(j~_6B2{Eu841*-ITSvq>_V+Y#qm@4FXIucyyv_1wvi zxr?-L|Kk&pAv!JQxWqMkUG{G1zx{pN2Z14yXghThQ89E7SpXKpptxfP5b! zreGW}_vk(yY}^rm*yOMa_T?-gHBrDgVD6DK4C70QzSM*xhVkVbj{+|an0xf)FyZiF z!ktYxp%`~}t{*u%OzcrxbwC{`JFw#~JF@?u*Ps8(MS7(Us007X0n Date: Sun, 21 Sep 2025 23:36:12 +0200 Subject: [PATCH 03/15] .github/workflows/ci.yml --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a54d8248d5..12066e72b7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,5 +18,5 @@ jobs: with: go-version: "1.25.1" - - name: Force Failure - run: (exit 1) \ No newline at end of file + - name: Check Go version + run: go version \ No newline at end of file From 2f714d6f54aa290b1aac47072f50e511cbb0fc9f Mon Sep 17 00:00:00 2001 From: Fortune Achigbu Date: Mon, 22 Sep 2025 02:04:09 +0200 Subject: [PATCH 04/15] internal/auth/auth_test.go --- internal/auth/auth_test.go | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 internal/auth/auth_test.go diff --git a/internal/auth/auth_test.go b/internal/auth/auth_test.go new file mode 100644 index 0000000000..76f126fee3 --- /dev/null +++ b/internal/auth/auth_test.go @@ -0,0 +1,47 @@ +package auth + +import ( + "net/http" + "testing" +) + +// TestGetAPIKey tests the GetAPIKey function. +func TestGetAPIKey(t *testing.T) { + // Sub-test for a valid, well-formed Authorization header. + t.Run("Valid API Key", func(t *testing.T) { + headers := http.Header{} + headers.Set("Authorization", "ApiKey my-secret-key") + + key, err := GetAPIKey(headers) + if err != nil { + t.Fatalf("expected no error, got %v", err) + } + if key != "my-secret-key" { + t.Errorf("expected key to be 'my-secret-key', got '%s'", key) + } + }) + + // Sub-test for a missing Authorization header. + t.Run("No Auth Header", func(t *testing.T) { + headers := http.Header{} + + _, err := GetAPIKey(headers) + if err == nil { + t.Fatal("expected an error, but got none") + } + if err != ErrNoAuthHeaderIncluded { + t.Errorf("expected error '%v', got '%v'", ErrNoAuthHeaderIncluded, err) + } + }) + + // Sub-test for a malformed Authorization header. + t.Run("Malformed Auth Header", func(t *testing.T) { + headers := http.Header{} + headers.Set("Authorization", "Bearer some-other-token") + + _, err := GetAPIKey(headers) + if err == nil { + t.Fatal("expected an error, but got none") + } + }) +} From 845e5719e0f455eddc87a24ea1a0c2464ae0cd3f Mon Sep 17 00:00:00 2001 From: Fortune Achigbu Date: Mon, 22 Sep 2025 03:07:39 +0200 Subject: [PATCH 05/15] .github/workflows/ci.yml --- .DS_Store | Bin 6148 -> 6148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.DS_Store b/.DS_Store index c54830abb5bcefbfcfc3bba6acdc52cbb888d020..c3818a0659958683ee8b63b931d0a747b3488430 100644 GIT binary patch delta 111 zcmZoMXffEJ#uB%+fq{X6g+Y%YogtH Date: Mon, 22 Sep 2025 12:45:29 +0200 Subject: [PATCH 06/15] Replacing Go version with Run tests --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 12066e72b7..10ec7225e1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,5 +18,5 @@ jobs: with: go-version: "1.25.1" - - name: Check Go version - run: go version \ No newline at end of file + - name: Run tests + run: go test ./... \ No newline at end of file From 44163e431597082ceb1dbcae252a78adeb4dc72e Mon Sep 17 00:00:00 2001 From: Fortune Achigbu Date: Mon, 22 Sep 2025 17:16:48 +0200 Subject: [PATCH 07/15] Add code coverage reporting to CI tests --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 10ec7225e1..2883422b54 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,4 +19,4 @@ jobs: go-version: "1.25.1" - name: Run tests - run: go test ./... \ No newline at end of file + run: go test -cover ./... \ No newline at end of file From fbe29efeb216032f26cfeeffc62939c72ba3141a Mon Sep 17 00:00:00 2001 From: Jay-Jay-Capacity Date: Mon, 22 Sep 2025 17:46:08 +0200 Subject: [PATCH 08/15] Create .env --- .env | 1 + 1 file changed, 1 insertion(+) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000000..14f6494f9b --- /dev/null +++ b/.env @@ -0,0 +1 @@ +PORT="8080" From 70f58232bc0e5dd70acda10570facd79d92e9834 Mon Sep 17 00:00:00 2001 From: Jay-Jay-Capacity Date: Mon, 22 Sep 2025 17:57:23 +0200 Subject: [PATCH 09/15] Create .env --- .env | 1 + 1 file changed, 1 insertion(+) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000000..14f6494f9b --- /dev/null +++ b/.env @@ -0,0 +1 @@ +PORT="8080" From b22f9c4f9d57d9b7f1e4521345d6d32e7c5412af Mon Sep 17 00:00:00 2001 From: Fortune Achigbu Date: Mon, 22 Sep 2025 18:39:11 +0200 Subject: [PATCH 10/15] docs: Add CI status badge to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 22cc2859aa..6397ad1605 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +![CI Tests](https://github.com/Jay-Jay-Capacity/learn-cicd-starter/actions/workflows/ci.yml/badge.svg) + # learn-cicd-starter (Notely) This repo contains the starter code for the "Notely" application for the "Learn CICD" course on [Boot.dev](https://boot.dev). From 0f036561b5a28c096e4c27482a2dda8ece486665 Mon Sep 17 00:00:00 2001 From: Fortune Achigbu Date: Mon, 22 Sep 2025 18:40:47 +0200 Subject: [PATCH 11/15] commit --- .DS_Store | Bin 6148 -> 6148 bytes coverage.out | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 coverage.out diff --git a/.DS_Store b/.DS_Store index c3818a0659958683ee8b63b931d0a747b3488430..5f5b07891a479e96a468c71fd8642ea926217126 100644 GIT binary patch delta 463 zcmZoMXfc@J&nUAoU^g?P%w!%Gsrom;3=9k`40;Ud44Diix%n@c$#G8jr3l5*0KR4_2sM`J2McEnO=Z`Jb< zN1z#$n~!h`ZdE7_Vh{j1hy&=+Jcbg6RE8pkyvYw(SSHV4;bYRNn0$dnZ1O%9E;f-= zke!pyu_z&!Vv~7T`4}4}OS3xaMARXB%$M#ax59FL@Kv5`@i#>NUJI7ys0NHzZG5`Po delta 306 zcmZoMXfc@J&nU4mU^g?P#AF^8skp5T3=9k`40;Ud44Diix%n-4j6aV0+maiW!m_ihwRFU?^cI&do>I4pB8(f-OYl z)bh8$#t5ZTES*do|Mwt#JZ$0i433bDtr8T5OD+*8Ib2V>4+&z)E>VKY0& GUw#0vja~Tw diff --git a/coverage.out b/coverage.out new file mode 100644 index 0000000000..91b33da5a9 --- /dev/null +++ b/coverage.out @@ -0,0 +1,100 @@ +mode: set +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:12.99,14.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:14.16,17.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:19.2,20.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:20.16,23.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:25.2,25.46 1 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:28.102,35.16 5 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:35.16,38.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:40.2,48.16 3 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:48.16,51.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:53.2,54.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:54.16,57.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:59.2,60.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:60.16,63.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:65.2,65.50 1 0 +github.com/bootdotdev/learn-cicd-starter/handler_ready.go:5.63,7.2 1 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:15.82,22.16 5 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:22.16,25.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:27.2,28.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:28.16,31.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:33.2,40.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:40.16,43.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:45.2,46.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:46.16,49.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:51.2,52.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:52.16,55.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:56.2,56.50 1 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:59.49,62.16 3 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:62.16,64.3 1 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:65.2,67.24 3 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:70.99,73.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:73.16,76.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:78.2,78.45 1 0 +github.com/bootdotdev/learn-cicd-starter/json.go:9.82,10.19 1 0 +github.com/bootdotdev/learn-cicd-starter/json.go:10.19,12.3 1 0 +github.com/bootdotdev/learn-cicd-starter/json.go:13.2,13.16 1 0 +github.com/bootdotdev/learn-cicd-starter/json.go:13.16,15.3 1 0 +github.com/bootdotdev/learn-cicd-starter/json.go:16.2,21.4 2 0 +github.com/bootdotdev/learn-cicd-starter/json.go:24.76,27.16 3 0 +github.com/bootdotdev/learn-cicd-starter/json.go:27.16,31.3 3 0 +github.com/bootdotdev/learn-cicd-starter/json.go:32.2,33.14 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:27.13,29.16 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:29.16,31.3 1 0 +github.com/bootdotdev/learn-cicd-starter/main.go:33.2,34.16 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:34.16,36.3 1 0 +github.com/bootdotdev/learn-cicd-starter/main.go:38.2,43.17 3 0 +github.com/bootdotdev/learn-cicd-starter/main.go:43.17,46.3 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:46.8,48.17 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:48.17,50.4 1 0 +github.com/bootdotdev/learn-cicd-starter/main.go:51.3,53.40 3 0 +github.com/bootdotdev/learn-cicd-starter/main.go:56.2,67.63 3 0 +github.com/bootdotdev/learn-cicd-starter/main.go:67.63,69.17 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:69.17,72.4 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:73.3,74.42 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:74.42,76.4 1 0 +github.com/bootdotdev/learn-cicd-starter/main.go:79.2,81.22 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:81.22,86.3 4 0 +github.com/bootdotdev/learn-cicd-starter/main.go:88.2,97.33 5 0 +github.com/bootdotdev/learn-cicd-starter/middleware_auth.go:12.78,13.54 1 0 +github.com/bootdotdev/learn-cicd-starter/middleware_auth.go:13.54,15.17 2 0 +github.com/bootdotdev/learn-cicd-starter/middleware_auth.go:15.17,18.4 2 0 +github.com/bootdotdev/learn-cicd-starter/middleware_auth.go:20.3,21.17 2 0 +github.com/bootdotdev/learn-cicd-starter/middleware_auth.go:21.17,24.4 2 0 +github.com/bootdotdev/learn-cicd-starter/middleware_auth.go:26.3,26.22 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:17.59,19.16 2 0 +github.com/bootdotdev/learn-cicd-starter/models.go:19.16,21.3 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:23.2,24.16 2 0 +github.com/bootdotdev/learn-cicd-starter/models.go:24.16,26.3 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:27.2,33.8 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:44.59,46.16 2 0 +github.com/bootdotdev/learn-cicd-starter/models.go:46.16,48.3 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:50.2,51.16 2 0 +github.com/bootdotdev/learn-cicd-starter/models.go:51.16,53.3 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:54.2,60.8 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:63.66,65.29 2 0 +github.com/bootdotdev/learn-cicd-starter/models.go:65.29,68.17 3 0 +github.com/bootdotdev/learn-cicd-starter/models.go:68.17,70.4 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:73.2,73.20 1 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/db.go:19.28,21.2 1 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/db.go:27.47,31.2 1 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:25.79,34.2 2 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:41.73,52.2 4 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:59.87,61.16 2 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:61.16,63.3 1 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:64.2,66.18 3 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:66.18,74.17 2 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:74.17,76.4 1 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:77.3,77.27 1 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:79.2,79.37 1 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:79.37,81.3 1 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:82.2,82.35 1 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:82.35,84.3 1 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/notes.sql.go:85.2,85.19 1 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/users.sql.go:31.79,40.2 2 0 +github.com/bootdotdev/learn-cicd-starter/internal/database/users.sql.go:47.77,58.2 4 0 +github.com/bootdotdev/learn-cicd-starter/internal/auth/auth.go:12.53,14.22 2 1 +github.com/bootdotdev/learn-cicd-starter/internal/auth/auth.go:14.22,16.3 1 1 +github.com/bootdotdev/learn-cicd-starter/internal/auth/auth.go:17.2,18.52 2 1 +github.com/bootdotdev/learn-cicd-starter/internal/auth/auth.go:18.52,20.3 1 1 +github.com/bootdotdev/learn-cicd-starter/internal/auth/auth.go:22.2,22.26 1 1 From 02b1582f13d3f30bec50f7d06db69059ebe00031 Mon Sep 17 00:00:00 2001 From: Fortune Achigbu Date: Fri, 26 Sep 2025 13:05:09 +0200 Subject: [PATCH 12/15] commit cd --- .DS_Store | Bin 6148 -> 6148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.DS_Store b/.DS_Store index 21c04dc516fb17e255540b82aaa53d6184064cc6..3556420e439b9be7b72d8b02b33dfcfd6ab6e51f 100644 GIT binary patch delta 108 zcmZoMXffEJ!V=Hqvg Date: Fri, 26 Sep 2025 13:12:01 +0200 Subject: [PATCH 13/15] Add CD workflow to deploy on push to main --- .github/workflows/cd.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/workflows/cd.yml diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml new file mode 100644 index 0000000000..e69de29bb2 From 114b5a9e82bbaefb0f138c34175eac83f969bf09 Mon Sep 17 00:00:00 2001 From: Fortune Achigbu Date: Fri, 26 Sep 2025 18:38:20 +0200 Subject: [PATCH 14/15] Add CD workflow to deploy on push to main --- .github/workflows/cd.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index e69de29bb2..3966067497 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -0,0 +1,22 @@ +name: cd + +on: + push: + branches: [main] + +jobs: + deploy: + name: Deploy + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: "1.25.1" + + - name: Build production app + run: ./scripts/buildprod.sh \ No newline at end of file From 722f39d6bc59c187c186cba1f882bb919055f4e0 Mon Sep 17 00:00:00 2001 From: Fortune Achigbu Date: Sat, 27 Sep 2025 13:16:26 +0200 Subject: [PATCH 15/15] ci: Add step to build and push image to Artifact Registry --- .github/workflows/cd.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 3966067497..6dc1e93aef 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -19,4 +19,16 @@ jobs: go-version: "1.25.1" - name: Build production app - run: ./scripts/buildprod.sh \ No newline at end of file + run: ./scripts/buildprod.sh + + - name: Authenticate to Google Cloud + 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: Build and push Docker image + run: | + gcloud builds submit --tag us-central1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/notely-repo/notely:latest . \ No newline at end of file