Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
110 changes: 87 additions & 23 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,22 @@ on:
secrets:
SECRET:
required: true
workflow_dispatch:

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"
Expand All @@ -21,17 +29,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
Expand All @@ -43,42 +50,99 @@ jobs:
uses: actions/upload-artifact@v2
with:
name: backend-linux
path: ./output/backend-linux-64
path: "${{env.BACKEND_DIR}}/output/*"

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
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}}"
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
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@v2
uses: actions/upload-artifact@v3
with:
name: backend-windows
path: ./output/backend-windows-64.exe
path: "${{env.BACKEND_DIR}}\\output\\*"

build-backend-mac:
name: "Build backend for macOS"
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: 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/*"
9 changes: 9 additions & 0 deletions backend/load-secret.sh
Original file line number Diff line number Diff line change
@@ -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"
9 changes: 0 additions & 9 deletions load-secret.sh

This file was deleted.