From 7d7cd25ecc38a01828b416d02e9eb903189f4193 Mon Sep 17 00:00:00 2001 From: Adora Laura Kalb Date: Thu, 25 Jul 2024 21:34:58 +0200 Subject: [PATCH] add CI --- .woodpecker/build-and-deploy.yml | 54 ++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .woodpecker/build-and-deploy.yml diff --git a/.woodpecker/build-and-deploy.yml b/.woodpecker/build-and-deploy.yml new file mode 100644 index 0000000..5aa5b73 --- /dev/null +++ b/.woodpecker/build-and-deploy.yml @@ -0,0 +1,54 @@ +when: + event: tag + +matrix: + include: + - GOOS: linux + GOARCH: amd64 + - GOOS: linux + GOARCH: arm64 + +steps: + build: + secrets: + - FORGEJO_APIKEY # needs write:repository + image: golang:1.22-alpine + environment: + - APP_NAME=mailcow-admin-aliases + - FORGE=https://code.lila.network + commands: + - apk add --update --no-cache xz curl jq + - go mod download + - go build -o output/$APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM} main.go + - cd output + - xz --keep --compress $APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM} + - sha256sum $APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM} >> $APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}.sha256 + - sha256sum $APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}.xz >> $APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}.xz.sha256 + - |- + export RELEASE_ID=`curl --location "$FORGE/api/v1/repos/$CI_REPO/releases?limit=10" \ + --header 'Accept: application/json' -s -S \ + --fail-with-body | jq -r ".[] | select (.tag_name==\"$CI_COMMIT_TAG\").id"` + - |- + curl --location "$FORGE/api/v1/repos/$CI_REPO/releases/$RELEASE_ID/assets" \ + --header "Authorization: token $FORGEJO_APIKEY" \ + --header 'Content-Type: multipart/form-data' -s -S \ + --form "attachment=@$APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM};type=application/octet-stream" \ + --fail-with-body + - |- + curl --location "$FORGE/api/v1/repos/$CI_REPO/releases/$RELEASE_ID/assets" \ + --header "Authorization: token $FORGEJO_APIKEY" \ + --header 'Content-Type: multipart/form-data' -s -S \ + --form "attachment=@$APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}.xz;type=application/octet-stream" \ + --fail-with-body + - |- + curl --location "$FORGE/api/v1/repos/$CI_REPO/releases/$RELEASE_ID/assets" \ + --header "Authorization: token $FORGEJO_APIKEY" \ + --header 'Content-Type: multipart/form-data' -s -S \ + --form "attachment=@$APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}.sha256;type=application/octet-stream" \ + --fail-with-body + - |- + curl --location "$FORGE/api/v1/repos/$CI_REPO/releases/$RELEASE_ID/assets" \ + --header "Authorization: token $FORGEJO_APIKEY" \ + --header 'Content-Type: multipart/form-data' -s -S \ + --form "attachment=@$APP_NAME-${CI_COMMIT_TAG##v}-${GOOS}-${GOARCH}${GOARM}.xz.sha256;type=application/octet-stream" \ + --fail-with-body