From b37c14abdd058240eb3e264cb1992fc08bd2095e Mon Sep 17 00:00:00 2001 From: Stefan Kapferer Date: Mon, 26 May 2025 10:00:10 +0200 Subject: [PATCH 1/6] Adjust GitHub Actions workflow --- .github/workflows/main_build.yml | 92 ++++++++++++++++++++++++++++---- .github/workflows/undeploy.yml | 39 +++++++++++++- eventbridge/serverless.yml | 2 +- manager/serverless.yml | 2 +- resolver/serverless.yml | 2 +- 5 files changed, 121 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main_build.yml b/.github/workflows/main_build.yml index 19e41d2..86470ca 100644 --- a/.github/workflows/main_build.yml +++ b/.github/workflows/main_build.yml @@ -7,7 +7,27 @@ on: workflow_dispatch: jobs: - build: + build_manager: + name: Build TLA Manager + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install dependencies + run: | + apt-get update && apt-get install -y zip curl libicu-dev + curl -sSL https://dot.net/v1/dotnet-install.sh | bash -s -- --version 8.0.408 --install-dir /usr/bin/dotnet + export PATH=$PATH:/usr/bin/dotnet + - name: Switch to microservice directory + run: cd manager + - name: Build using shell script + run: ./.build.sh + - uses: actions/cache@v4 + id: cache-manager-release + with: + path: manager/bin/release + key: tla-sample-app-serverless-manager-release-${{ github.run_id }} + build_resolver: + name: Build TLA Resolver runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -19,18 +39,66 @@ jobs: cache: maven - name: Install Graphviz run: sudo apt-get -y install graphviz + - name: Switch to microservice directory + run: cd resolver - name: Build with Maven run: mvn -B package --file pom.xml - uses: actions/cache@v4 - id: cache-target + id: cache-resolver-target with: - path: target - key: tla-sample-app-serverless-target-${{ github.run_id }} + path: resolver/target + key: tla-sample-app-serverless-resolver-target-${{ github.run_id }} - deploy: - name: deploy + deploy_event_bridge: + name: Deploy Infrastructure (Event Bridge) + runs-on: ubuntu-latest + needs: + - build_manager + - build_resolver + steps: + - uses: actions/checkout@v3 + - name: Use Node.js 18.x + uses: actions/setup-node@v3 + with: + node-version: 18.x + - run: npm install -g serverless + - name: Switch to microservice directory + run: cd eventbridge + - run: serverless deploy + env: + SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} + deploy_manager: + name: Deploy TLA Manager + runs-on: ubuntu-latest + needs: + - build_manager + - deploy_event_bridge + steps: + - uses: actions/checkout@v3 + - name: Use Node.js 18.x + uses: actions/setup-node@v3 + with: + node-version: 18.x + - uses: actions/cache@v4 + id: cache-manager-release + with: + path: manager/bin/release + key: tla-sample-app-serverless-manager-release-${{ github.run_id }} + - run: npm install -g serverless + - name: Switch to microservice directory + run: cd manager + - run: serverless deploy + env: + SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} + - run: serverless invoke --function seedDatabase --data 'unused' + env: + SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} + deploy_resolver: + name: Deploy TLA Resolver runs-on: ubuntu-latest - needs: build + needs: + - build_resolver + - deploy_event_bridge steps: - uses: actions/checkout@v3 - name: Use Node.js 18.x @@ -38,14 +106,16 @@ jobs: with: node-version: 18.x - uses: actions/cache@v4 - id: cache-target + id: cache-resolver-target with: - path: target - key: tla-sample-app-serverless-target-${{ github.run_id }} + path: resolver/target + key: tla-sample-app-serverless-resolver-target-${{ github.run_id }} - run: npm install -g serverless + - name: Switch to microservice directory + run: cd resolver - run: serverless deploy env: SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} - - run: serverless invoke --function seed_database --data 'unused' + - run: serverless invoke --function seedDatabase --data 'unused' env: SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} diff --git a/.github/workflows/undeploy.yml b/.github/workflows/undeploy.yml index 9f2a3e8..3ee01f6 100644 --- a/.github/workflows/undeploy.yml +++ b/.github/workflows/undeploy.yml @@ -4,8 +4,8 @@ on: workflow_dispatch: jobs: - undeploy: - name: undeploy + undeploy_resolver: + name: Undeploy Resolver runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -14,6 +14,41 @@ jobs: with: node-version: 18.x - run: npm install -g serverless + - name: Switch to microservice directory + run: cd resolver + - run: serverless remove + env: + SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} + undeploy_manager: + name: Undeploy Manager + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Use Node.js 18.x + uses: actions/setup-node@v3 + with: + node-version: 18.x + - run: npm install -g serverless + - name: Switch to microservice directory + run: cd manager + - run: serverless remove + env: + SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} + undeploy_eventbridge: + name: Undeploy Infrastructure (Event Bridge) + runs-on: ubuntu-latest + needs: + - undeploy_resolver + - undeploy_manager + steps: + - uses: actions/checkout@v3 + - name: Use Node.js 18.x + uses: actions/setup-node@v3 + with: + node-version: 18.x + - run: npm install -g serverless + - name: Switch to microservice directory + run: cd eventbridge - run: serverless remove env: SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} diff --git a/eventbridge/serverless.yml b/eventbridge/serverless.yml index faba120..fdf7c63 100644 --- a/eventbridge/serverless.yml +++ b/eventbridge/serverless.yml @@ -1,4 +1,4 @@ -org: cldsolgrp09 +org: osttlasample3 app: tla-eventbridge-serverless service: tla-eventbridge-serverless provider: diff --git a/manager/serverless.yml b/manager/serverless.yml index 6fc801b..433ccf9 100644 --- a/manager/serverless.yml +++ b/manager/serverless.yml @@ -1,4 +1,4 @@ -org: cldsolgrp09 +org: osttlasample3 app: tla-manager-serverless service: tla-manager-serverless provider: diff --git a/resolver/serverless.yml b/resolver/serverless.yml index a22fd83..738efb4 100644 --- a/resolver/serverless.yml +++ b/resolver/serverless.yml @@ -1,4 +1,4 @@ -org: cldsolgrp09 +org: osttlasample3 app: tla-resolver-serverless service: tla-resolver-serverless provider: From 42a6a7b83a1effa9d58d9c3fe5f49afef4a1feb5 Mon Sep 17 00:00:00 2001 From: Stefan Kapferer Date: Mon, 26 May 2025 10:04:04 +0200 Subject: [PATCH 2/6] sudo when apt-get --- .github/workflows/main_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main_build.yml b/.github/workflows/main_build.yml index 86470ca..a204b12 100644 --- a/.github/workflows/main_build.yml +++ b/.github/workflows/main_build.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v3 - name: Install dependencies run: | - apt-get update && apt-get install -y zip curl libicu-dev + sudo apt-get update && sudo apt-get install -y zip curl libicu-dev curl -sSL https://dot.net/v1/dotnet-install.sh | bash -s -- --version 8.0.408 --install-dir /usr/bin/dotnet export PATH=$PATH:/usr/bin/dotnet - name: Switch to microservice directory From 2e6a13606af75254bc0802e12b3843f2ef3be3b6 Mon Sep 17 00:00:00 2001 From: Stefan Kapferer Date: Mon, 26 May 2025 10:08:35 +0200 Subject: [PATCH 3/6] Use Maven wrapper in resolver --- .github/workflows/main_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main_build.yml b/.github/workflows/main_build.yml index a204b12..dd1019d 100644 --- a/.github/workflows/main_build.yml +++ b/.github/workflows/main_build.yml @@ -42,7 +42,7 @@ jobs: - name: Switch to microservice directory run: cd resolver - name: Build with Maven - run: mvn -B package --file pom.xml + run: ./mvnw -B package --file pom.xml - uses: actions/cache@v4 id: cache-resolver-target with: From 2c4d408a098bcccf8aa22301796078cdf54c7fbe Mon Sep 17 00:00:00 2001 From: Stefan Kapferer Date: Mon, 26 May 2025 10:12:09 +0200 Subject: [PATCH 4/6] Use setup-dotnet action --- .github/workflows/main_build.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main_build.yml b/.github/workflows/main_build.yml index dd1019d..1933674 100644 --- a/.github/workflows/main_build.yml +++ b/.github/workflows/main_build.yml @@ -15,8 +15,10 @@ jobs: - name: Install dependencies run: | sudo apt-get update && sudo apt-get install -y zip curl libicu-dev - curl -sSL https://dot.net/v1/dotnet-install.sh | bash -s -- --version 8.0.408 --install-dir /usr/bin/dotnet - export PATH=$PATH:/usr/bin/dotnet + - name: Install .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '8.0.408' - name: Switch to microservice directory run: cd manager - name: Build using shell script From 08f6a2de7d9fed50a8bfaa38e22839992168dc15 Mon Sep 17 00:00:00 2001 From: Stefan Kapferer Date: Mon, 26 May 2025 10:21:00 +0200 Subject: [PATCH 5/6] Use working-directory --- .github/workflows/main_build.yml | 17 +++++++---------- .github/workflows/undeploy.yml | 9 +++------ 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main_build.yml b/.github/workflows/main_build.yml index 1933674..a4c7f7a 100644 --- a/.github/workflows/main_build.yml +++ b/.github/workflows/main_build.yml @@ -19,9 +19,8 @@ jobs: uses: actions/setup-dotnet@v4 with: dotnet-version: '8.0.408' - - name: Switch to microservice directory - run: cd manager - name: Build using shell script + working-directory: manager run: ./.build.sh - uses: actions/cache@v4 id: cache-manager-release @@ -41,9 +40,8 @@ jobs: cache: maven - name: Install Graphviz run: sudo apt-get -y install graphviz - - name: Switch to microservice directory - run: cd resolver - name: Build with Maven + working-directory: resolver run: ./mvnw -B package --file pom.xml - uses: actions/cache@v4 id: cache-resolver-target @@ -64,9 +62,8 @@ jobs: with: node-version: 18.x - run: npm install -g serverless - - name: Switch to microservice directory - run: cd eventbridge - run: serverless deploy + working-directory: eventbridge env: SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} deploy_manager: @@ -87,12 +84,12 @@ jobs: path: manager/bin/release key: tla-sample-app-serverless-manager-release-${{ github.run_id }} - run: npm install -g serverless - - name: Switch to microservice directory - run: cd manager - run: serverless deploy + working-directory: manager env: SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} - run: serverless invoke --function seedDatabase --data 'unused' + working-directory: manager env: SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} deploy_resolver: @@ -113,11 +110,11 @@ jobs: path: resolver/target key: tla-sample-app-serverless-resolver-target-${{ github.run_id }} - run: npm install -g serverless - - name: Switch to microservice directory - run: cd resolver - run: serverless deploy + working-directory: resolver env: SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} - run: serverless invoke --function seedDatabase --data 'unused' + working-directory: resolver env: SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} diff --git a/.github/workflows/undeploy.yml b/.github/workflows/undeploy.yml index 3ee01f6..6156235 100644 --- a/.github/workflows/undeploy.yml +++ b/.github/workflows/undeploy.yml @@ -14,9 +14,8 @@ jobs: with: node-version: 18.x - run: npm install -g serverless - - name: Switch to microservice directory - run: cd resolver - run: serverless remove + working-directory: resolver env: SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} undeploy_manager: @@ -29,9 +28,8 @@ jobs: with: node-version: 18.x - run: npm install -g serverless - - name: Switch to microservice directory - run: cd manager - run: serverless remove + working-directory: manager env: SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} undeploy_eventbridge: @@ -47,8 +45,7 @@ jobs: with: node-version: 18.x - run: npm install -g serverless - - name: Switch to microservice directory - run: cd eventbridge - run: serverless remove + working-directory: eventbridge env: SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} From 537358be2ec6b135094a39172d018f0a869de60e Mon Sep 17 00:00:00 2001 From: Stefan Kapferer Date: Mon, 26 May 2025 10:34:13 +0200 Subject: [PATCH 6/6] Manager caching in manager/bin/release/net8.0 --- .github/workflows/main_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main_build.yml b/.github/workflows/main_build.yml index a4c7f7a..0a11a89 100644 --- a/.github/workflows/main_build.yml +++ b/.github/workflows/main_build.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/cache@v4 id: cache-manager-release with: - path: manager/bin/release + path: manager/bin/release/net8.0 key: tla-sample-app-serverless-manager-release-${{ github.run_id }} build_resolver: name: Build TLA Resolver @@ -81,7 +81,7 @@ jobs: - uses: actions/cache@v4 id: cache-manager-release with: - path: manager/bin/release + path: manager/bin/release/net8.0 key: tla-sample-app-serverless-manager-release-${{ github.run_id }} - run: npm install -g serverless - run: serverless deploy