when: event: tag matrix: include: - GOOS: linux GOARCH: amd64 - GOOS: linux GOARCH: arm GOARM: 6 - GOOS: linux GOARCH: arm64 steps: build: secrets: - FORGEJO_APIKEY image: golang:1.20-alpine environment: - APP_NAME=humble-bot - FORGE=https://git.lauka.net 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