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