Add CI and test how it goes
This commit is contained in:
parent
11768a682c
commit
48864c4da2
3 changed files with 93 additions and 0 deletions
56
.woodpecker/binary-build.yaml
Normal file
56
.woodpecker/binary-build.yaml
Normal file
|
@ -0,0 +1,56 @@
|
|||
matrix:
|
||||
include:
|
||||
- GOOS: linux
|
||||
GOARCH: amd64
|
||||
- GOOS: linux
|
||||
GOARCH: arm
|
||||
GOARM: 6
|
||||
- GOOS: linux
|
||||
GOARCH: arm64
|
||||
|
||||
steps:
|
||||
build:
|
||||
when:
|
||||
event: tag
|
||||
secrets:
|
||||
- FORGEJO_APIKEY
|
||||
image: golang:1.20-alpine
|
||||
environment:
|
||||
- APP_NAME=humble-bot
|
||||
- FORGE=https://codeberg.org
|
||||
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
|
30
.woodpecker/docker-build.yaml
Normal file
30
.woodpecker/docker-build.yaml
Normal file
|
@ -0,0 +1,30 @@
|
|||
steps:
|
||||
docker-deploy-push:
|
||||
when:
|
||||
- event: push
|
||||
branch: main
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
settings:
|
||||
dockerfile: Dockerfile
|
||||
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64
|
||||
repo: codeberg.org/lauralani/
|
||||
registry: codeberg.org
|
||||
tags: latest
|
||||
username: lauralani
|
||||
password:
|
||||
from_secret: FORGEJO_APIKEY
|
||||
|
||||
docker-deploy-tag:
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
settings:
|
||||
dockerfile: Dockerfile
|
||||
platforms: linux/arm/v7,linux/arm64/v8,linux/amd64
|
||||
repo: codeberg.org/lauralani/humble-bot
|
||||
registry: codeberg.org
|
||||
auto_tag: true
|
||||
username: lauralani
|
||||
password:
|
||||
from_secret: FORGEJO_APIKEY
|
7
.woodpecker/lint.yaml
Normal file
7
.woodpecker/lint.yaml
Normal file
|
@ -0,0 +1,7 @@
|
|||
steps:
|
||||
go-lint:
|
||||
image: golangci/golangci-lint
|
||||
commands:
|
||||
- golangci-lint run
|
||||
when:
|
||||
event: ["push", "pull_request", "manual"]
|
Loading…
Reference in a new issue