add CI files
Some checks failed
ci/woodpecker/push/test Pipeline failed
ci/woodpecker/push/build unknown status

add makefile

add fpm conf
This commit is contained in:
Simon Vieille 2024-07-30 21:34:05 +02:00
commit 87e76093a5
Signed by: deblan
GPG key ID: 579388D585F70417
8 changed files with 155 additions and 1 deletions

6
.fpm Normal file
View file

@ -0,0 +1,6 @@
-s dir
--name i3-wallpaper-manager
--license agpl3
--description "Wallpaper manager for i3"
--url "https://gitnet.fr/deblan/i3-wallpaper-manager"
--maintainer "Simon Vieille <contact+i3wallpapermanager@deblan.fr>"

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
/i3-wallpaper-manager /i3-wallpaper-manager
/config.yaml /config.yaml
/build

54
.woodpecker/build.yml Normal file
View file

@ -0,0 +1,54 @@
when:
- event: [pull_request, tag]
- event: push
branch:
- ${CI_REPO_DEFAULT_BRANCH}
- develop
- feature/*
- release/*
- renovate/*
variables:
- &golang_image 'golang:1.22'
depends_on:
- test
steps:
"Add vendor":
image: *golang_image
commands:
- go mod vendor
"Run build":
image: *golang_image
commands:
- make
"Test packaging":
image: deblan/fpm-packager
commands:
- VERSION=test
- ./bin/build-debs.sh "$VERSION"
- ./bin/rename-builds.sh "$VERSION"
when:
event: [push, pull_request]
"Create packages":
image: deblan/fpm-packager
commands:
- VERSION=${CI_COMMIT_TAG/v//}
- ./bin/build-debs.sh "$VERSION"
- ./bin/rename-builds.sh "$VERSION"
when:
event: [tag]
"Publish":
image: plugins/gitea-release
settings:
api_key:
from_secret: gitnet_api_key
base_url: https://gitnet.fr
files: ./build/*
when:
event: [tag]

15
.woodpecker/test.yml Normal file
View file

@ -0,0 +1,15 @@
when:
- event: [pull_request, tag]
- event: push
branch:
- ${CI_REPO_DEFAULT_BRANCH}
- develop
- feature/*
- release/*
- renovate/*
steps:
"Check sehll scripts":
image: pipelinecomponents/shellcheck
commands:
- shellcheck ./bin/*.sh

56
Makefile Normal file
View file

@ -0,0 +1,56 @@
CGO_ENABLED = 0
DIR = ./build
GO_ARCH_AMD = amd64
GO_ARCH_ARM = arm64
GO_OS_WIN = windows
GO_OS_DARWIN = darwin
GO_OS_LINUX = linux
EXECUTABLE = i3-wallpaper-manager
BIN_LINUX_AMD64 = $(DIR)/$(EXECUTABLE)-linux-$(GO_ARCH_AMD)
BIN_LINUX_ARM64 = $(DIR)/$(EXECUTABLE)-linux-$(GO_ARCH_ARM)
CC = go build
CFLAGS = -trimpath
LDFLAGS = all=-w -s
GCFLAGS = all=
ASMFLAGS = all=
.PHONY: all
all: linux
.PHONY: linux
linux: $(BIN_LINUX_AMD64) $(BIN_LINUX_ARM64)
chmod +x $(BIN_LINUX_ARM64)
chmod +x $(BIN_LINUX_AMD64)
.PHONY: $(BIN_LINUX_AMD64)
$(BIN_LINUX_AMD64):
GO111MODULE=$(GOMOD) \
GOARCH=$(GO_ARCH_AMD) \
GOOS=$(GO_OS_LINUX) \
CGO_ENABLED=$(CGO_ENABLED) \
$(CC) $(CFLAGS) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" \
-o $(BIN_LINUX_AMD64) .
.PHONY: $(BIN_LINUX_ARM64)
$(BIN_LINUX_ARM64):
GO111MODULE=$(GOMOD) \
GOARCH=$(GO_ARCH_ARM) \
GOOS=$(GO_OS_LINUX) \
CGO_ENABLED=$(CGO_ENABLED) \
$(CC) $(CFLAGS) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" \
-o $(BIN_LINUX_ARM64) .
.PHONY: clean
clean:
rm -rf $(DIR)/*
tool-gofumpt:
which golangci-lint > /dev/null 2>&1 || go install mvdan.cc/gofumpt@latest
fmt: tool-gofumpt
gofumpt -w --extra .

11
bin/build-debs.sh Executable file
View file

@ -0,0 +1,11 @@
#!/bin/sh
set -e
VERSION="$1"
for ARCH in amd64 arm64; do
fpm -t deb -p "build/i3-wallpaper-manager-$VERSION-$ARCH.deb" \
--architecture $ARCH --version "$VERSION" \
"build/i3-wallpaper-manager-linux-$ARCH=/usr/bin/i3wp" \
done

11
bin/rename-builds.sh Executable file
View file

@ -0,0 +1,11 @@
#!/bin/sh
set -e
VERSION="$1"
for ARCH in amd64 arm64; do
mv -v \
"build/i3-wallpaper-manager-linux-${ARCH}" \
"build/i3-wallpaper-manager-${VERSION}-linux-${ARCH}"
done

View file

@ -66,7 +66,7 @@ func main() {
cmd := exec.Command("feh", args...) cmd := exec.Command("feh", args...)
cmd.Env = os.Environ() cmd.Env = os.Environ()
log.Printf("[DEBUG] %s", cmd.String()) log.Printf("[UPDATE] %s", cmd.String())
if err := cmd.Run(); err != nil { if err := cmd.Run(); err != nil {
log.Printf("[ERROR] %s", err.Error()) log.Printf("[ERROR] %s", err.Error())