From 6f8d586860e1eb6ef5ab6c8c21390c1ca134ca3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Wed, 1 May 2024 02:26:01 +0300 Subject: [PATCH 01/13] chore(devops): build backend with actions --- .github/workflows/backend_build.yml | 59 +++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/workflows/backend_build.yml diff --git a/.github/workflows/backend_build.yml b/.github/workflows/backend_build.yml new file mode 100644 index 00000000..238e0f94 --- /dev/null +++ b/.github/workflows/backend_build.yml @@ -0,0 +1,59 @@ +name: backend-worklow + +on: + push: + paths: + - 'backend/**' + - docker-compose.yml + - docker-compose.dev.yml + - '.github/workflows/backend_build.yml' + + pull_request: + branches: + - main + - staging + - develop + + +jobs: + build: + runs-on: ubuntu-latest + env: + working-directory: + backend + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Maven + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Build Docker backend-dev Image + run: docker-compose -f docker-compose.dev.yml build db-dev + + - name: Run Docker backend-dev Container + run: docker-compose -f docker-compose.dev.yml up -d db-dev + + - name: Run Tests + run: mvn clean test + + - name: Stop Docker backend-dev Container + run: docker-compose -f docker-compose.dev.yml down + + - name: Build Docker backend-prod Image + run: docker-compose -f docker-compose.yml build db + + - name: Run Docker backend-prod Container + run: docker-compose -f docker-compose.yml up -d db + + - name: Run Tests + run: mvn clean test + + - name: Stop Docker backend-prod Container + run: docker-compose -f docker-compose.yml down + + + From dfbf0df39b940ecd7ad1400643f420f7c83fa665 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Wed, 1 May 2024 02:31:15 +0300 Subject: [PATCH 02/13] fix(devops): change to relative path --- .github/workflows/backend_build.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/backend_build.yml b/.github/workflows/backend_build.yml index 238e0f94..14beec02 100644 --- a/.github/workflows/backend_build.yml +++ b/.github/workflows/backend_build.yml @@ -32,28 +32,28 @@ jobs: java-version: '17' - name: Build Docker backend-dev Image - run: docker-compose -f docker-compose.dev.yml build db-dev + run: docker-compose -f ../docker-compose.dev.yml build db-dev - name: Run Docker backend-dev Container - run: docker-compose -f docker-compose.dev.yml up -d db-dev + run: docker-compose -f ../docker-compose.dev.yml up -d db-dev - name: Run Tests run: mvn clean test - name: Stop Docker backend-dev Container - run: docker-compose -f docker-compose.dev.yml down + run: docker-compose -f ../docker-compose.dev.yml down - name: Build Docker backend-prod Image - run: docker-compose -f docker-compose.yml build db + run: docker-compose -f ../docker-compose.yml build db - name: Run Docker backend-prod Container - run: docker-compose -f docker-compose.yml up -d db + run: docker-compose -f ../docker-compose.yml up -d db - name: Run Tests run: mvn clean test - name: Stop Docker backend-prod Container - run: docker-compose -f docker-compose.yml down + run: docker-compose -f ../docker-compose.yml down From 290dcccbcd0b486282f8885bd241f0ac16c551b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Wed, 1 May 2024 03:05:17 +0300 Subject: [PATCH 03/13] fix(devops): update docker version --- .github/workflows/backend_build.yml | 12 ++++++------ docker-compose.dev.yml | 2 +- docker-compose.yml | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/backend_build.yml b/.github/workflows/backend_build.yml index 14beec02..238e0f94 100644 --- a/.github/workflows/backend_build.yml +++ b/.github/workflows/backend_build.yml @@ -32,28 +32,28 @@ jobs: java-version: '17' - name: Build Docker backend-dev Image - run: docker-compose -f ../docker-compose.dev.yml build db-dev + run: docker-compose -f docker-compose.dev.yml build db-dev - name: Run Docker backend-dev Container - run: docker-compose -f ../docker-compose.dev.yml up -d db-dev + run: docker-compose -f docker-compose.dev.yml up -d db-dev - name: Run Tests run: mvn clean test - name: Stop Docker backend-dev Container - run: docker-compose -f ../docker-compose.dev.yml down + run: docker-compose -f docker-compose.dev.yml down - name: Build Docker backend-prod Image - run: docker-compose -f ../docker-compose.yml build db + run: docker-compose -f docker-compose.yml build db - name: Run Docker backend-prod Container - run: docker-compose -f ../docker-compose.yml up -d db + run: docker-compose -f docker-compose.yml up -d db - name: Run Tests run: mvn clean test - name: Stop Docker backend-prod Container - run: docker-compose -f ../docker-compose.yml down + run: docker-compose -f docker-compose.yml down diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index f13821e5..15b9d3da 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -1,4 +1,4 @@ -version: "3.1" +version: "3.3" name: bounswe2024group1-dev services: diff --git a/docker-compose.yml b/docker-compose.yml index 118c24ae..e2ad5bf6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.1" +version: "3.3" name: bounswe2024group1 # Production-like docker-compose setup From 8adb2859b623f01b97b403f2836d335e4dc55bdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Wed, 1 May 2024 22:41:05 +0300 Subject: [PATCH 04/13] fix(devops): delete name field in docker-compose.yml --- .github/workflows/backend_build.yml | 18 +++--------------- docker-compose.yml | 1 - 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/.github/workflows/backend_build.yml b/.github/workflows/backend_build.yml index 238e0f94..3c0c6c10 100644 --- a/.github/workflows/backend_build.yml +++ b/.github/workflows/backend_build.yml @@ -30,30 +30,18 @@ jobs: with: distribution: 'temurin' java-version: '17' - - - name: Build Docker backend-dev Image - run: docker-compose -f docker-compose.dev.yml build db-dev - - - name: Run Docker backend-dev Container - run: docker-compose -f docker-compose.dev.yml up -d db-dev - - - name: Run Tests - run: mvn clean test - - - name: Stop Docker backend-dev Container - run: docker-compose -f docker-compose.dev.yml down - name: Build Docker backend-prod Image - run: docker-compose -f docker-compose.yml build db + run: docker compose -f docker-compose.yml build db - name: Run Docker backend-prod Container - run: docker-compose -f docker-compose.yml up -d db + run: docker compose -f docker-compose.yml up -d db - name: Run Tests run: mvn clean test - name: Stop Docker backend-prod Container - run: docker-compose -f docker-compose.yml down + run: docker compose -f docker-compose.yml down diff --git a/docker-compose.yml b/docker-compose.yml index e2ad5bf6..c1564bd9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,4 @@ version: "3.3" -name: bounswe2024group1 # Production-like docker-compose setup services: From 00e33cae7a07af04339638b4bbfa632e1f33e037 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Wed, 1 May 2024 23:01:56 +0300 Subject: [PATCH 05/13] fix(devops): test in container --- .github/workflows/backend_build.yml | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/.github/workflows/backend_build.yml b/.github/workflows/backend_build.yml index 3c0c6c10..902f79a9 100644 --- a/.github/workflows/backend_build.yml +++ b/.github/workflows/backend_build.yml @@ -24,24 +24,9 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - - - name: Set up Maven - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '17' - - name: Build Docker backend-prod Image - run: docker compose -f docker-compose.yml build db - - - name: Run Docker backend-prod Container - run: docker compose -f docker-compose.yml up -d db - - - name: Run Tests - run: mvn clean test - - - name: Stop Docker backend-prod Container - run: docker compose -f docker-compose.yml down + - name: Test with Maven + run: docker compose -f docker-compose.dev.yml run --rm backend-dev mvn test From 1849dd7db41d4659266e5511ee114535fbd46461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Wed, 1 May 2024 23:08:50 +0300 Subject: [PATCH 06/13] fix(devops): revert version changes --- docker-compose.dev.yml | 2 +- docker-compose.yml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 15b9d3da..f13821e5 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -1,4 +1,4 @@ -version: "3.3" +version: "3.1" name: bounswe2024group1-dev services: diff --git a/docker-compose.yml b/docker-compose.yml index c1564bd9..118c24ae 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,5 @@ -version: "3.3" +version: "3.1" +name: bounswe2024group1 # Production-like docker-compose setup services: From 615cb03e6db0924c395dd32c4e9a4cb03008e7ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Mon, 6 May 2024 14:46:40 +0300 Subject: [PATCH 07/13] chore(devops): auto-deploy backend staging --- .github/workflows/backend_deploy_staging.yml | 43 ++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/backend_deploy_staging.yml diff --git a/.github/workflows/backend_deploy_staging.yml b/.github/workflows/backend_deploy_staging.yml new file mode 100644 index 00000000..fdcbb40b --- /dev/null +++ b/.github/workflows/backend_deploy_staging.yml @@ -0,0 +1,43 @@ +name: backend-staging-workflow + +on: + push: + branches: + - staging + paths: + - 'backend/**' + - docker-compose.yml + +jobs: + test: + runs-on: ubuntu-latest + env: + working-directory: backend + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Test with Maven + run: docker compose -f docker-compose.dev.yml run --rm backend-dev mvn test + + deploy: + needs: test + runs-on: ubuntu-latest + env: + working-directory: backend + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Login to Docker Hub + run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin + + - name: Build Docker image + run: docker compose -f docker-compose.yml build + + - name: Tag Docker image + run: docker tag bounswe2024group1-backend:latest registry.digitalocean.com/semantic-browse/backend-staging:latest + + - name: Push Docker image + run: docker push registry.digitalocean.com/semantic-browse/backend-staging:latest + From f243d4f990c6b9468da5c6b2ba8541e43adac13d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Tue, 7 May 2024 17:59:56 +0300 Subject: [PATCH 08/13] chore(devops): use digital ocean access token --- .github/workflows/backend_deploy_staging.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/backend_deploy_staging.yml b/.github/workflows/backend_deploy_staging.yml index fdcbb40b..fb04408d 100644 --- a/.github/workflows/backend_deploy_staging.yml +++ b/.github/workflows/backend_deploy_staging.yml @@ -29,8 +29,11 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Login to Docker Hub - run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin + - name: Authorize to with doctl + run: echo ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} | doctl auth init --context github-actions + + - name: Login to Docker registry + run: doctl registry login --context github-actions - name: Build Docker image run: docker compose -f docker-compose.yml build From 73702f0980438312179e7e429f8d30392f5d4156 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Tue, 7 May 2024 18:21:32 +0300 Subject: [PATCH 09/13] fix(devops): update compose names --- .github/workflows/backend_build.yml | 2 +- .github/workflows/backend_deploy_staging.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/backend_build.yml b/.github/workflows/backend_build.yml index 902f79a9..872c2309 100644 --- a/.github/workflows/backend_build.yml +++ b/.github/workflows/backend_build.yml @@ -26,7 +26,7 @@ jobs: uses: actions/checkout@v4 - name: Test with Maven - run: docker compose -f docker-compose.dev.yml run --rm backend-dev mvn test + run: docker compose -f dev.yml run --rm backend mvn test diff --git a/.github/workflows/backend_deploy_staging.yml b/.github/workflows/backend_deploy_staging.yml index fb04408d..9890dc6f 100644 --- a/.github/workflows/backend_deploy_staging.yml +++ b/.github/workflows/backend_deploy_staging.yml @@ -18,7 +18,7 @@ jobs: uses: actions/checkout@v4 - name: Test with Maven - run: docker compose -f docker-compose.dev.yml run --rm backend-dev mvn test + run: docker compose -f dev.yml run --rm backend mvn test deploy: needs: test @@ -36,7 +36,7 @@ jobs: run: doctl registry login --context github-actions - name: Build Docker image - run: docker compose -f docker-compose.yml build + run: docker compose build - name: Tag Docker image run: docker tag bounswe2024group1-backend:latest registry.digitalocean.com/semantic-browse/backend-staging:latest From 13bfb9906e8536afc924de79ae3b0e9df8aa0496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Fri, 10 May 2024 18:12:47 +0300 Subject: [PATCH 10/13] chore(devops): rename to test --- .github/workflows/{backend_build.yml => backend_test.yml} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename .github/workflows/{backend_build.yml => backend_test.yml} (94%) diff --git a/.github/workflows/backend_build.yml b/.github/workflows/backend_test.yml similarity index 94% rename from .github/workflows/backend_build.yml rename to .github/workflows/backend_test.yml index 872c2309..2cffe13b 100644 --- a/.github/workflows/backend_build.yml +++ b/.github/workflows/backend_test.yml @@ -1,4 +1,4 @@ -name: backend-worklow +name: backend-test on: push: @@ -16,7 +16,7 @@ on: jobs: - build: + test: runs-on: ubuntu-latest env: working-directory: From 8c22cb54517012e190a16addc945413cb04725f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Fri, 10 May 2024 18:15:34 +0300 Subject: [PATCH 11/13] fix(devops): add workflow dependency --- .github/workflows/backend_deploy_staging.yml | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/.github/workflows/backend_deploy_staging.yml b/.github/workflows/backend_deploy_staging.yml index 9890dc6f..cabc9b6a 100644 --- a/.github/workflows/backend_deploy_staging.yml +++ b/.github/workflows/backend_deploy_staging.yml @@ -1,30 +1,20 @@ name: backend-staging-workflow on: + workflow_run: + workflows: ["backend-test"] + types: + - completed push: branches: - staging paths: - 'backend/**' - - docker-compose.yml + - compose.yml jobs: - test: - runs-on: ubuntu-latest - env: - working-directory: backend - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Test with Maven - run: docker compose -f dev.yml run --rm backend mvn test - deploy: - needs: test runs-on: ubuntu-latest - env: - working-directory: backend steps: - name: Checkout uses: actions/checkout@v4 From bd77d7bd2f28d8169dbcb4a757d046beb1a38dfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Fri, 10 May 2024 18:20:25 +0300 Subject: [PATCH 12/13] fix(devops): update compose file names --- .github/workflows/backend_test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/backend_test.yml b/.github/workflows/backend_test.yml index 2cffe13b..e146b217 100644 --- a/.github/workflows/backend_test.yml +++ b/.github/workflows/backend_test.yml @@ -4,9 +4,9 @@ on: push: paths: - 'backend/**' - - docker-compose.yml - - docker-compose.dev.yml - - '.github/workflows/backend_build.yml' + - compose.yml + - dev.yml + - '.github/workflows/backend_test.yml' pull_request: branches: From 1cce7c16d01b93648259c11fd699bc873fec6546 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Ya=C5=9Far?= Date: Fri, 10 May 2024 18:22:22 +0300 Subject: [PATCH 13/13] chore(devops): fix tab indentations --- .github/workflows/backend_test.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/backend_test.yml b/.github/workflows/backend_test.yml index e146b217..6d33851e 100644 --- a/.github/workflows/backend_test.yml +++ b/.github/workflows/backend_test.yml @@ -16,17 +16,17 @@ on: jobs: - test: - runs-on: ubuntu-latest - env: - working-directory: - backend - steps: - - name: Checkout - uses: actions/checkout@v4 + test: + runs-on: ubuntu-latest + env: + working-directory: + backend + steps: + - name: Checkout + uses: actions/checkout@v4 - - name: Test with Maven - run: docker compose -f dev.yml run --rm backend mvn test + - name: Test with Maven + run: docker compose -f dev.yml run --rm backend mvn test