From 4d6fc8642168cccdb36a9b4bd63d67b61678eece Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 12:06:12 +0100 Subject: [PATCH 01/16] Update linux build script to new folder structure --- .github/workflows/build.yaml | 26 ++++++++++++++++---------- backend/load-secret.sh | 9 +++++++++ backend/pkg/vehicle/constructor.go | 2 +- load-secret.sh | 9 --------- 4 files changed, 26 insertions(+), 20 deletions(-) create mode 100644 backend/load-secret.sh delete mode 100755 load-secret.sh diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5ab6d802d..3cbf00c56 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -6,13 +6,20 @@ on: SECRET: required: true +env: + SECRET: ${{ secrets.SECRET }} + jobs: - build-linux: - name: "Build for linux" + build-backend-linux: + name: "Build backend for linux" runs-on: ubuntu-latest + # Runs on alpine because it is easier to staticly link the library container: - image: golang:alpine + image: golang:alpine + + env: + BACKEND_DIR: ./backend steps: - name: "Install packages" @@ -21,17 +28,16 @@ jobs: - uses: actions/checkout@v3 - name: "Create output path" + working-directory: "${{env.BACKEND_DIR}}" run: mkdir ./output - name: "Load secret" - env: - SECRET: ${{ secrets.SECRET }} + working-directory: "${{env.BACKEND_DIR}}" run: | - echo "$SECRET" > ./src/excel/secret.json - echo "$SECRET" > ./src/excel_adapter/internals/secret.json + ./load-secret.sh "$SECRET" - - name: "Build for amd46 (64 bit)" - working-directory: ./src + - name: "Build (64 bit)" + working-directory: "${{env.BACKEND_DIR}}/cmd" env: CGO_ENABLED: 1 GOARCH: amd64 @@ -43,7 +49,7 @@ jobs: uses: actions/upload-artifact@v2 with: name: backend-linux - path: ./output/backend-linux-64 + path: "${{env.BACKEND_DIR}}/output/backend-linux-64" build-windows: name: "Build for windows" diff --git a/backend/load-secret.sh b/backend/load-secret.sh new file mode 100644 index 000000000..a38e64ba1 --- /dev/null +++ b/backend/load-secret.sh @@ -0,0 +1,9 @@ +if [ $# -ne 1 ]; then + echo "expected at least one argument"; + exit 1; +fi + +echo "$1" > "./internal/excel/secret.json" +echo "$1" > "./internal/excel_adapter/internals/secret.json" +echo "$1" > "./pkg/excel/secret.json" +echo "$1" > "./pkg/excel_adapter/internals/secret.json" \ No newline at end of file diff --git a/backend/pkg/vehicle/constructor.go b/backend/pkg/vehicle/constructor.go index a02241849..3ce8d470b 100644 --- a/backend/pkg/vehicle/constructor.go +++ b/backend/pkg/vehicle/constructor.go @@ -33,7 +33,7 @@ func (vehicle *Vehicle) RemoveBoardId(id abstraction.BoardId) { // SetTransport sets the Vehicle Transport to the provided one func (vehicle *Vehicle) SetTransport(transport abstraction.Transport) { - transport.SetAPI(vehicle) + //transport.SetAPI(vehicle) vehicle.transport = transport } diff --git a/load-secret.sh b/load-secret.sh deleted file mode 100755 index 83a55592f..000000000 --- a/load-secret.sh +++ /dev/null @@ -1,9 +0,0 @@ -if [ $# -ne 1 ]; then - echo "expected at least one argument"; - exit 1; -fi - -echo "$1" > "./backend/internal/excel/secret.json" -echo "$1" > "./backend/internal/excel_adapter/internals/secret.json" -echo "$1" > "./backend/pkg/excel/secret.json" -echo "$1" > "./backend/pkg/excel_adapter/internals/secret.json" \ No newline at end of file From ae0805d3a07e64edd4c9e73e1a236b3283d9aab5 Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 12:08:54 +0100 Subject: [PATCH 02/16] Make build action run manually --- .github/workflows/build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3cbf00c56..aa66ad97d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -5,6 +5,7 @@ on: secrets: SECRET: required: true + workflow_dispatch: env: SECRET: ${{ secrets.SECRET }} From d26a6d43b67b97d052b3e82994ef47b635855574 Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 12:17:30 +0100 Subject: [PATCH 03/16] Make load-secret executable --- backend/load-secret.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 backend/load-secret.sh diff --git a/backend/load-secret.sh b/backend/load-secret.sh old mode 100644 new mode 100755 From 44cbad7cba42ac739e090bf3aa851bb519c2e063 Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 12:29:24 +0100 Subject: [PATCH 04/16] Bump upload artifacts version to 3 --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index aa66ad97d..65aee0c77 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -85,7 +85,7 @@ jobs: go build -ldflags '-linkmode external -extldflags "-static"' -o ..\output\backend-windows-64.exe - name: "Uplaod artifacts" - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: backend-windows path: ./output/backend-windows-64.exe From 98324376fee4f3bee4d4a128425ebd5b772ec344 Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 13:04:49 +0100 Subject: [PATCH 05/16] Update windows build workflow to use new file structure --- .github/workflows/build.yaml | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 65aee0c77..54be622a8 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -52,31 +52,33 @@ jobs: name: backend-linux path: "${{env.BACKEND_DIR}}/output/backend-linux-64" - build-windows: - name: "Build for windows" + build-backend-windows: + name: "Build backend for windows" runs-on: windows-latest + env: + BACKEND_DIR: ".\\backend" + steps: - uses: actions/checkout@v3 - name: "Setup Go" uses: actions/setup-go@v4 with: - go-version: "1.20" - cache-dependency-path: ".\\src\\go.sum" + go-version: "1.19" + cache-dependency-path: "${{env.BACKEND_DIR}}\\go.sum" - name: "Load secret" - env: - SECRET: ${{ secrets.SECRET }} + working-directory: "${{env.BACKEND_DIR}}" run: | - echo "$env:SECRET" > .\src\excel\secret.json - echo "$env:SECRET" > .\src\excel_adapter\internals\secret.json + bash "${{env.BACKEND_DIR}}\\load-secret.sh" "${{env.SECRET}}" - name: "Create output path" + working-directory: "${{env.BACKEND_DIR}}" run: mkdir .\output - - name: "Build for amd46 (64 bit)" - working-directory: .\src + - name: "Build (64 bit)" + working-directory: "${{env.BACKEND_DIR}}\\cmd" env: CGO_ENABLED: 1 GOARCH: amd64 @@ -88,4 +90,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: backend-windows - path: ./output/backend-windows-64.exe + path: "${{env.BACKEND_DIR}}\\output\\backend-windows-64.exe" From 7bee997155ab4343b3ac24eac7a86f6540415bfc Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 13:07:26 +0100 Subject: [PATCH 06/16] Fix load-secret path typo on windows --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 54be622a8..b6db10b11 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -71,7 +71,7 @@ jobs: - name: "Load secret" working-directory: "${{env.BACKEND_DIR}}" run: | - bash "${{env.BACKEND_DIR}}\\load-secret.sh" "${{env.SECRET}}" + bash "${{env.BACKEND_DIR}}\load-secret.sh" "${{env.SECRET}}" - name: "Create output path" working-directory: "${{env.BACKEND_DIR}}" From 45e23ee238066d93d9689c6e14a92bdef01c927d Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 13:09:19 +0100 Subject: [PATCH 07/16] Fix wrong path for windows load-secret --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b6db10b11..530ccde1a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -71,7 +71,7 @@ jobs: - name: "Load secret" working-directory: "${{env.BACKEND_DIR}}" run: | - bash "${{env.BACKEND_DIR}}\load-secret.sh" "${{env.SECRET}}" + bash ".\load-secret.sh" "${{env.SECRET}}" - name: "Create output path" working-directory: "${{env.BACKEND_DIR}}" From fcddd1af745d157053bd70a6eb7b4f1eb035961d Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 13:20:07 +0100 Subject: [PATCH 08/16] Return to old load secret for windows --- .github/workflows/build.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 530ccde1a..f48a0a752 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -71,7 +71,10 @@ jobs: - name: "Load secret" working-directory: "${{env.BACKEND_DIR}}" run: | - bash ".\load-secret.sh" "${{env.SECRET}}" + echo "${{env.SECRET}}" > "${{env.BACKEND_DIR}}\internal\excel\secret.json" && + echo "${{env.SECRET}}" > "${{env.BACKEND_DIR}}\internal\excel_adapter\internals\secret.json" && + echo "${{env.SECRET}}" > "${{env.BACKEND_DIR}}\pkg\excel\secret.json" && + echo "${{env.SECRET}}" > "${{env.BACKEND_DIR}}\pkg\excel_adapter\internals\secret.json" - name: "Create output path" working-directory: "${{env.BACKEND_DIR}}" From df32fa093f9320dd8023c9ab4be4646907633570 Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 13:22:13 +0100 Subject: [PATCH 09/16] Fix path naming again --- .github/workflows/build.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f48a0a752..08deffba2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -71,10 +71,10 @@ jobs: - name: "Load secret" working-directory: "${{env.BACKEND_DIR}}" run: | - echo "${{env.SECRET}}" > "${{env.BACKEND_DIR}}\internal\excel\secret.json" && - echo "${{env.SECRET}}" > "${{env.BACKEND_DIR}}\internal\excel_adapter\internals\secret.json" && - echo "${{env.SECRET}}" > "${{env.BACKEND_DIR}}\pkg\excel\secret.json" && - echo "${{env.SECRET}}" > "${{env.BACKEND_DIR}}\pkg\excel_adapter\internals\secret.json" + echo "${{env.SECRET}}" > ".\internal\excel\secret.json" && + echo "${{env.SECRET}}" > ".\internal\excel_adapter\internals\secret.json" && + echo "${{env.SECRET}}" > ".\pkg\excel\secret.json" && + echo "${{env.SECRET}}" > ".\pkg\excel_adapter\internals\secret.json" - name: "Create output path" working-directory: "${{env.BACKEND_DIR}}" From a6a73d2cc1cb2001e91a31f7af2af41c924c95e9 Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 14:33:12 +0100 Subject: [PATCH 10/16] Add backend build workflow for macos --- .github/workflows/build.yaml | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 08deffba2..a71d161d9 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -94,3 +94,46 @@ jobs: with: name: backend-windows path: "${{env.BACKEND_DIR}}\\output\\backend-windows-64.exe" + + build-backend-mac: + name: "Build backend for linux" + runs-on: macos-latest + + env: + BACKEND_DIR: ./backend + + steps: + - name: "Install packages" + run: brew install libpcap + + - name: "Setup Go" + uses: actions/setup-go@v4 + with: + go-version: "1.19" + cache-dependency-path: "${{env.BACKEND_DIR}}/go.sum" + + - uses: actions/checkout@v3 + + - name: "Create output path" + working-directory: "${{env.BACKEND_DIR}}" + run: mkdir ./output + + - name: "Load secret" + working-directory: "${{env.BACKEND_DIR}}" + run: | + ./load-secret.sh "$SECRET" + + - name: "Build (64 bit)" + working-directory: "${{env.BACKEND_DIR}}/cmd" + env: + CGO_ENABLED: 1 + GOARCH: amd64 + GOOS: linux + run: | + go build -ldflags '-linkmode external -extldflags "-static"' -o ../output/backend-linux-64 + + - name: "Uplaod artifacts" + uses: actions/upload-artifact@v2 + with: + name: backend-macos + path: "${{env.BACKEND_DIR}}/output/backend-macos-64" \ No newline at end of file From d89f7887f464290afe576c7299dbe168947161b0 Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 14:37:01 +0100 Subject: [PATCH 11/16] Set correct os for mac build --- .github/workflows/build.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a71d161d9..0ff71bbd3 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -96,7 +96,7 @@ jobs: path: "${{env.BACKEND_DIR}}\\output\\backend-windows-64.exe" build-backend-mac: - name: "Build backend for linux" + name: "Build backend for macOS" runs-on: macos-latest env: @@ -128,12 +128,12 @@ jobs: env: CGO_ENABLED: 1 GOARCH: amd64 - GOOS: linux + GOOS: darwin run: | go build -ldflags '-linkmode external -extldflags "-static"' -o ../output/backend-linux-64 - name: "Uplaod artifacts" - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: backend-macos path: "${{env.BACKEND_DIR}}/output/backend-macos-64" \ No newline at end of file From 1714cb6ae8ebe5f66a137bcb7cffd30fd755f16a Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 14:43:13 +0100 Subject: [PATCH 12/16] Make windows and mac compilation not static --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 0ff71bbd3..8995f0fd7 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -87,7 +87,7 @@ jobs: GOARCH: amd64 GOOS: windows run: | - go build -ldflags '-linkmode external -extldflags "-static"' -o ..\output\backend-windows-64.exe + go build -o ..\output\backend-windows-64.exe - name: "Uplaod artifacts" uses: actions/upload-artifact@v3 @@ -130,7 +130,7 @@ jobs: GOARCH: amd64 GOOS: darwin run: | - go build -ldflags '-linkmode external -extldflags "-static"' -o ../output/backend-linux-64 + go build -o ../output/backend-linux-64 - name: "Uplaod artifacts" uses: actions/upload-artifact@v3 From 8b5966e5f6e769c2797f449fda67017d8279f5af Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 14:46:31 +0100 Subject: [PATCH 13/16] Fix macOS output naming --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 8995f0fd7..9423906f2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -130,7 +130,7 @@ jobs: GOARCH: amd64 GOOS: darwin run: | - go build -o ../output/backend-linux-64 + go build -o ../output/backend-macos-64 - name: "Uplaod artifacts" uses: actions/upload-artifact@v3 From 2f2a519accd75962857ab59d957580962115c68e Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 14:50:49 +0100 Subject: [PATCH 14/16] Add build for apple silicon --- .github/workflows/build.yaml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 9423906f2..5d6142a09 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -50,7 +50,7 @@ jobs: uses: actions/upload-artifact@v2 with: name: backend-linux - path: "${{env.BACKEND_DIR}}/output/backend-linux-64" + path: "${{env.BACKEND_DIR}}/output/*" build-backend-windows: name: "Build backend for windows" @@ -93,7 +93,7 @@ jobs: uses: actions/upload-artifact@v3 with: name: backend-windows - path: "${{env.BACKEND_DIR}}\\output\\backend-windows-64.exe" + path: "${{env.BACKEND_DIR}}\\output\\*" build-backend-mac: name: "Build backend for macOS" @@ -131,9 +131,18 @@ jobs: GOOS: darwin run: | go build -o ../output/backend-macos-64 + + - name: "Build (apple 64 bit)" + working-directory: "${{env.BACKEND_DIR}}/cmd" + env: + CGO_ENABLED: 1 + GOARCH: arm64 + GOOS: darwin + run: | + go build -o ../output/backend-macos-m1-64 - name: "Uplaod artifacts" uses: actions/upload-artifact@v3 with: name: backend-macos - path: "${{env.BACKEND_DIR}}/output/backend-macos-64" \ No newline at end of file + path: "${{env.BACKEND_DIR}}/output/*" \ No newline at end of file From 832efb8f04ae2d6a5c83f7304b9d25e5642b2241 Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 15:16:06 +0100 Subject: [PATCH 15/16] Add new lines at the end of file --- .github/workflows/build.yaml | 2 +- backend/load-secret.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5d6142a09..bb69842bc 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -145,4 +145,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: backend-macos - path: "${{env.BACKEND_DIR}}/output/*" \ No newline at end of file + path: "${{env.BACKEND_DIR}}/output/*" diff --git a/backend/load-secret.sh b/backend/load-secret.sh index a38e64ba1..105c658e3 100755 --- a/backend/load-secret.sh +++ b/backend/load-secret.sh @@ -6,4 +6,4 @@ fi echo "$1" > "./internal/excel/secret.json" echo "$1" > "./internal/excel_adapter/internals/secret.json" echo "$1" > "./pkg/excel/secret.json" -echo "$1" > "./pkg/excel_adapter/internals/secret.json" \ No newline at end of file +echo "$1" > "./pkg/excel_adapter/internals/secret.json" From 2a30ff90f5bfea1ffc3c07621a4e952e79bd08da Mon Sep 17 00:00:00 2001 From: jmaralo Date: Thu, 30 Nov 2023 15:21:13 +0100 Subject: [PATCH 16/16] Revert change to vehicle constructor --- backend/pkg/vehicle/constructor.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/pkg/vehicle/constructor.go b/backend/pkg/vehicle/constructor.go index 3ce8d470b..a02241849 100644 --- a/backend/pkg/vehicle/constructor.go +++ b/backend/pkg/vehicle/constructor.go @@ -33,7 +33,7 @@ func (vehicle *Vehicle) RemoveBoardId(id abstraction.BoardId) { // SetTransport sets the Vehicle Transport to the provided one func (vehicle *Vehicle) SetTransport(transport abstraction.Transport) { - //transport.SetAPI(vehicle) + transport.SetAPI(vehicle) vehicle.transport = transport }