Optimize CI
This commit is contained in:
parent
b720bf4ac0
commit
82114b8c76
|
@ -1,45 +0,0 @@
|
|||
pipeline:
|
||||
|
||||
docker:
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
settings:
|
||||
registry: git.massivebox.net
|
||||
repo: git.massivebox.net/ecodash/ecodash
|
||||
platforms: linux/amd64,linux/arm64
|
||||
auto_tag: true
|
||||
username: massivebox
|
||||
password:
|
||||
from_secret: auth_token
|
||||
when:
|
||||
event: tag
|
||||
|
||||
build:
|
||||
image: golang
|
||||
commands:
|
||||
- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
|
||||
- go mod tidy
|
||||
- golangci-lint run
|
||||
- go build -o ecodash-x86 src/main/main.go
|
||||
- env GOOS=linux GOARCH=arm go build -o ecodash-arm src/main/main.go
|
||||
|
||||
prepare-gitea-release:
|
||||
image: alpine
|
||||
commands:
|
||||
- apk update; apk add zip
|
||||
- mv ecodash-x86 ecodash; zip -r ecodash-x86.zip templates ecodash
|
||||
- mv ecodash-arm ecodash; zip -r ecodash-arm.zip templates ecodash
|
||||
when:
|
||||
event: tag
|
||||
|
||||
gitea-publish:
|
||||
image: plugins/gitea-release
|
||||
settings:
|
||||
base_url: https://git.massivebox.net
|
||||
files:
|
||||
- ecodash-x86.zip
|
||||
- ecodash-arm.zip
|
||||
api_key:
|
||||
from_secret: auth_token
|
||||
title: ${CI_COMMIT_TAG}
|
||||
when:
|
||||
event: tag
|
69
.woodpecker/.woodpecker.yml
Normal file
69
.woodpecker/.woodpecker.yml
Normal file
|
@ -0,0 +1,69 @@
|
|||
pipeline:
|
||||
|
||||
build-and-format:
|
||||
image: golang
|
||||
commands:
|
||||
- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
|
||||
- go mod tidy
|
||||
- golangci-lint run
|
||||
- env GOOS=linux GOARCH=amd64 go build -o ecodash-x86 src/main/main.go
|
||||
- env GOOS=linux GOARCH=arm go build -o ecodash-arm src/main/main.go
|
||||
- apt-get update; apt-get upgrade -y; apt-get install zip -y
|
||||
- mv ecodash-x86 ecodash; zip -r ecodash-x86.zip templates ecodash; mv ecodash ecodash-x86
|
||||
- mv ecodash-arm ecodash; zip -r ecodash-arm.zip templates ecodash; mv ecodash ecodash-arm
|
||||
- zip templates.zip -r templates
|
||||
|
||||
upload-debug:
|
||||
image: vividboarder/drone-webdav
|
||||
settings:
|
||||
file: { ecodash-x86,ecodash-arm,templates.zip }
|
||||
destination:
|
||||
from_secret: webdav_destination
|
||||
username:
|
||||
from_secret: webdav_username
|
||||
password:
|
||||
from_secret: webdav_password
|
||||
attempts: 5
|
||||
|
||||
gitea-publish:
|
||||
image: plugins/gitea-release
|
||||
settings:
|
||||
base_url: https://git.massivebox.net
|
||||
files:
|
||||
- ecodash-x86.zip
|
||||
- ecodash-arm.zip
|
||||
api_key:
|
||||
from_secret: auth_token
|
||||
title: ${CI_COMMIT_TAG}
|
||||
when:
|
||||
event: tag
|
||||
|
||||
docker-unstable:
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
settings:
|
||||
registry: git.massivebox.net
|
||||
repo: git.massivebox.net/ecodash/ecodash
|
||||
platforms: linux/amd64,linux/arm64
|
||||
tag: unstable
|
||||
username: massivebox
|
||||
password:
|
||||
from_secret: auth_token
|
||||
context: .woodpecker
|
||||
dockerfile: .woodpecker/Dockerfile-woodpecker
|
||||
when:
|
||||
event: [ push, pull_request, deployment ]
|
||||
|
||||
docker-tag:
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
settings:
|
||||
registry: git.massivebox.net
|
||||
repo: git.massivebox.net/ecodash/ecodash
|
||||
platforms: linux/amd64,linux/arm64
|
||||
auto_tag: true
|
||||
username: massivebox
|
||||
password:
|
||||
from_secret: auth_token
|
||||
context: .woodpecker
|
||||
dockerfile: .woodpecker/Dockerfile-woodpecker
|
||||
when:
|
||||
event: tag
|
11
.woodpecker/Dockerfile-woodpecker
Normal file
11
.woodpecker/Dockerfile-woodpecker
Normal file
|
@ -0,0 +1,11 @@
|
|||
FROM debian:latest
|
||||
|
||||
WORKDIR /app
|
||||
COPY ./setup.sh ./setup.sh
|
||||
|
||||
RUN apt-get update; apt-get upgrade -y; apt-get install zip curl -y && \
|
||||
curl https://cloud.massivebox.net/api/public/dl/fLgOAQNc -o templates.zip && unzip templates.zip && rm templates.zip && \
|
||||
chmod +x setup.sh && ./setup.sh && rm setup.sh && \
|
||||
chmod +x app
|
||||
|
||||
CMD ["./app"]
|
19
.woodpecker/setup.sh
Normal file
19
.woodpecker/setup.sh
Normal file
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
|
||||
ARCH=$(arch)
|
||||
|
||||
# This is a workaround to Woodpecker's inability to give files it has just built to Docker BuildX to build new images.
|
||||
# After compiling the binaries in the "build-and-format" step of woodpecker.yml, we upload them to the cloud and fetch them from here.
|
||||
|
||||
if [ "$ARCH" = "x86_64" ]; then
|
||||
echo "detected amd64"
|
||||
curl https://cloud.massivebox.net/api/public/dl/uZaDQXAa -o app
|
||||
elif [ "$ARCH" = "aarch64" ]; then
|
||||
echo "deteched arm"
|
||||
curl https://cloud.massivebox.net/api/public/dl/EhM62nhf -o app
|
||||
else
|
||||
echo "unsupported architecture"
|
||||
return 1
|
||||
fi
|
||||
|
||||
return 0
|
Loading…
Reference in a new issue