From 0ad979b240ee212b750077da2f6c261f7bb4c36b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20=C5=A0trauch?= Date: Sat, 25 Nov 2023 19:16:53 +0100 Subject: [PATCH] Pipeline migrated to gitea --- .drone.yml => .drone.off.yml | 0 .gitea/workflows/release.yml | 33 ++++++++++++++++++ .gitea/workflows/unittests.yml | 62 ++++++++++++++++++++++++++++++++++ go.mod | 2 +- go.sum | 2 -- handlers.go | 3 +- 6 files changed, 98 insertions(+), 4 deletions(-) rename .drone.yml => .drone.off.yml (100%) create mode 100644 .gitea/workflows/release.yml create mode 100644 .gitea/workflows/unittests.yml diff --git a/.drone.yml b/.drone.off.yml similarity index 100% rename from .drone.yml rename to .drone.off.yml diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..daad6cc --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,33 @@ +name: Release + +on: + release: + types: [published] + # push: + # branches: [main] + workflow_dispatch: {} + +jobs: + deploy-production: + runs-on: [amd64, prod] + env: + NODES: node-22.rosti.cz node-23.rosti.cz node-24.rosti.cz node-25.rosti.cz + steps: + - uses: actions/checkout@v4 + - name: deploy + run: | + echo "Building for Debian 12 .." + docker run --rm --privileged -ti -v `pwd`:/srv golang:1.21-bookworm /bin/sh -c "cd /srv && go build" + + for NODE in $NODES; do + echo "\033[0;32mDeploying $NODE\033[0m" + echo "\033[1;33m.. scanning SSH keys\033[0m" + ssh -o "StrictHostKeyChecking=no" root@$NODE echo "Setting up key" + echo "\033[1;33m.. copying the binary\033[0m" + scp node-api root@$NODE:/usr/local/bin/node-api_ + echo "\033[1;33m.. replacing the binary\033[0m" + ssh root@$NODE mv /usr/local/bin/node-api_ /usr/local/bin/node-api + echo "\033[1;33m.. restarting service\033[0m" + ssh root@$NODE systemctl restart node-api + done + diff --git a/.gitea/workflows/unittests.yml b/.gitea/workflows/unittests.yml new file mode 100644 index 0000000..817baaf --- /dev/null +++ b/.gitea/workflows/unittests.yml @@ -0,0 +1,62 @@ +name: Unittests + +on: + push: + branches: [main] + workflow_dispatch: {} + +jobs: + unittests: + runs-on: [amd64, moon] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v3 + with: + go-version: 1.21 + - name: start minio + run: | + docker run -d --rm --name nodeapi_minio -p 9000:9000 -p 9001:9001 -e MINIO_ROOT_USER=test -e MINIO_ROOT_PASSWORD=testtest minio/minio:latest server /data --console-address :9001 + - name: deps + run: apt update && apt install -y tar zstd + - name: Test + run: | + make test + - name: stop minio + if: always() + run: | + docker stop nodeapi_minio + # TODO: probably not supported by Gitea workflows yet + # services: + # minio: + # image: minio/minio:latest + # env: + # MINIO_ROOT_USER: test + # MINIO_ROOT_PASSWORD: testtest + # ports: + # - 9001:9001 + # options: server /data --console-address :9001 + deploy-dev: + runs-on: [amd64, moon] + env: + NODES: 192.168.1.236 192.168.1.220 + steps: + - uses: actions/checkout@v4 + - name: deploy + run: | + # echo LS1 + # ls + docker run --rm --privileged -ti -v `pwd`:/srv golang:1.20-buster /bin/sh -c "cd /srv && go build" + # docker run --rm --privileged -ti -v `pwd`:/srv golang:1.20-buster /bin/sh -c "cd /srv && echo LS2 && ls" + + for NODE in $NODES; do + echo "\033[0;32mDeploying $NODE\033[0m" + echo "\033[1;33m.. scanning SSH keys\033[0m" + ssh -o "StrictHostKeyChecking=no" root@$NODE echo "Setting up key" + echo "\033[1;33m.. copying the binary\033[0m" + scp node-api root@$NODE:/usr/local/bin/node-api_ + echo "\033[1;33m.. replacing the binary\033[0m" + ssh root@$NODE mv /usr/local/bin/node-api_ /usr/local/bin/node-api + echo "\033[1;33m.. restarting service\033[0m" + ssh root@$NODE systemctl restart node-api + done + diff --git a/go.mod b/go.mod index 9353306..ac7086d 100644 --- a/go.mod +++ b/go.mod @@ -19,6 +19,7 @@ require ( github.com/kr/pretty v0.3.0 // indirect github.com/labstack/echo v3.3.10+incompatible github.com/labstack/gommon v0.3.0 // indirect + github.com/mattn/go-sqlite3 v1.14.17 // indirect github.com/minio/minio-go/v7 v7.0.14 github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect github.com/morikuni/aec v1.0.0 // indirect @@ -33,7 +34,6 @@ require ( google.golang.org/grpc v1.44.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gorm.io/driver/mysql v1.4.7 - gorm.io/driver/sqlite v1.5.4 gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55 gotest.tools/v3 v3.1.0 // indirect ) diff --git a/go.sum b/go.sum index b6ff1fb..67e2ef2 100644 --- a/go.sum +++ b/go.sum @@ -1090,8 +1090,6 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.4.7 h1:rY46lkCspzGHn7+IYsNpSfEv9tA+SU4SkkB+GFX125Y= gorm.io/driver/mysql v1.4.7/go.mod h1:SxzItlnT1cb6e1e4ZRpgJN2VYtcqJgqnHxWr4wsP8oc= -gorm.io/driver/sqlite v1.5.4 h1:IqXwXi8M/ZlPzH/947tn5uik3aYQslP9BVveoax0nV0= -gorm.io/driver/sqlite v1.5.4/go.mod h1:qxAuCol+2r6PannQDpOP1FP6ag3mKi4esLnB/jHed+4= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55 h1:sC1Xj4TYrLqg1n3AN10w871An7wJM0gzgcm8jkIkECQ= gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= diff --git a/handlers.go b/handlers.go index 04b83b4..c2664c9 100644 --- a/handlers.go +++ b/handlers.go @@ -40,6 +40,7 @@ func listAppsHandler(c echo.Context) error { // Returns one app func getAppHandler(c echo.Context) error { name := c.Param("name") + fast := c.Param("fast") processor := glue.Processor{ AppName: name, @@ -49,7 +50,7 @@ func getAppHandler(c echo.Context) error { BindIPSSH: config.AppsBindIPSSH, AppsPath: config.AppsPath, } - app, err := processor.Get(false) + app, err := processor.Get(fast == "1") if err != nil { return c.JSONPretty(http.StatusInternalServerError, Message{Message: err.Error()}, JSONIndent) }