4 Commits

Author SHA1 Message Date
27917528f7 Disable CGo in CI
All checks were successful
ci/woodpecker/tag/build/1 Pipeline was successful
ci/woodpecker/release/build/1 Pipeline was successful
ci/woodpecker/release/build/2 Pipeline was successful
ci/woodpecker/release/manifest Pipeline was successful
ci/woodpecker/tag/build/2 Pipeline was successful
ci/woodpecker/tag/manifest Pipeline was successful
2025-02-13 13:26:58 -08:00
8251e8b461 Add badges to README 2025-02-13 21:19:23 +00:00
c194f4956d Create custom CI pipeline
All checks were successful
ci/woodpecker/tag/build/1 Pipeline was successful
ci/woodpecker/release/build/1 Pipeline was successful
ci/woodpecker/release/build/2 Pipeline was successful
ci/woodpecker/release/manifest Pipeline was successful
ci/woodpecker/tag/build/2 Pipeline was successful
ci/woodpecker/tag/manifest Pipeline was successful
2025-02-13 13:01:20 -08:00
d58228cd43 Fix lack of $HOME in systemd service
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-02-12 22:55:04 -08:00
8 changed files with 102 additions and 100 deletions

View File

@@ -1,70 +0,0 @@
version: 2
before:
hooks:
- go mod tidy
builds:
- id: distrohop
env:
- CGO_ENABLED=0
binary: distrohop
goos:
- linux
goarch:
- amd64
- '386'
- arm64
- arm
- riscv64
archives:
- files:
- distrohop.service
nfpms:
- id: distrohop
description: "A utility for correlating and identifying equivalent software packages across different Linux distributions"
homepage: 'https://gitea.elara.ws/Elara6331/distrohop'
maintainer: 'Elara Ivy <elara@elara.ws>'
license: AGPLv3
formats:
- deb
- rpm
- archlinux
provides:
- distrohop
conflicts:
- distrohop
contents:
- src: distrohop.service
dst: /etc/systemd/system/distrohop.service
aurs:
- name: distrohop-bin
homepage: 'https://gitea.elara.ws/Elara6331/distrohop'
description: "A utility for correlating and identifying equivalent software packages across different Linux distributions"
maintainers:
- 'Elara Ivy <elara@elara.ws>'
license: AGPLv3
private_key: '{{ .Env.AUR_KEY }}'
git_url: 'ssh://aur@aur.archlinux.org/distrohop-bin.git'
provides:
- distrohop
conflicts:
- distrohop
package: |-
# binaries
install -Dm755 ./distrohop "${pkgdir}/usr/bin/distrohop"
# services
install -Dm644 ./distrohop.service "${pkgdir}/etc/systemd/system/distrohop.service"
release:
gitea:
owner: Elara6331
name: distrohop
gitea_urls:
api: 'https://gitea.elara.ws/api/v1/'
download: 'https://gitea.elara.ws'
skip_tls_verify: false
checksum:
name_template: 'checksums.txt'
snapshot:
name_template: "{{ incpatch .Version }}-next"
changelog:
sort: asc

20
.nfpm.yaml Normal file
View File

@@ -0,0 +1,20 @@
name: distrohop
description: "A utility for correlating and identifying equivalent software packages across different Linux distributions"
homepage: 'https://gitea.elara.ws/Elara6331/distrohop'
maintainer: 'Elara Ivy <elara@elara.ws>'
license: AGPLv3
arch: ${ARCH}
version: ${VERSION}
provides:
- distrohop
conflicts:
- distrohop
contents:
- src: distrohop
dst: /usr/bin/distrohop
file_info:
mode: 0755
- src: distrohop.service
dst: /etc/systemd/system/distrohop.service
file_info:
mode: 0644

View File

@@ -1,30 +0,0 @@
labels:
platform: linux/amd64
steps:
- name: docker
image: gitea.elara.ws/elara6331/builder
commands:
- registry-login
- ko build -B --platform=linux/amd64,linux/arm64,linux/riscv64 -t latest,${CI_COMMIT_TAG} --sbom=none
environment:
REGISTRY: gitea.elara.ws
REGISTRY_USERNAME: Elara6331
KO_DOCKER_REPO: gitea.elara.ws/elara6331
KO_DEFAULTBASEIMAGE: gitea.elara.ws/elara6331/static-root
REGISTRY_PASSWORD:
from_secret: registry_password
when:
event: tag
- name: release
image: goreleaser/goreleaser
commands:
- goreleaser release
environment:
GITEA_TOKEN:
from_secret: gitea_token
AUR_KEY:
from_secret: aur_key
when:
event: tag

55
.woodpecker/build.yml Normal file
View File

@@ -0,0 +1,55 @@
matrix:
platform:
- linux/amd64
- linux/arm64
labels:
platform: ${platform}
steps:
- name: build
image: golang:1.23.6
commands:
- go build
environment:
CGO_ENABLED: 0
when:
- event: tag
- name: docker
image: woodpeckerci/plugin-kaniko
settings:
registry: gitea.elara.ws
repo: elara6331/distrohop
tags: ${platform##linux/}
cache: true
username: elara6331
password:
from_secret: gitea_token
when:
event: tag
- name: nfpm
image: goreleaser/nfpm
environment:
ARCH: ${platform##linux/}
VERSION: ${CI_COMMIT_TAG##v}
commands:
- nfpm pkg -f .nfpm.yaml -p deb -t .
- nfpm pkg -f .nfpm.yaml -p rpm -t .
- nfpm pkg -f .nfpm.yaml -p archlinux -t .
when:
event: tag
- name: release
image: gitea.elara.ws/elara6331/woodpecker-release
settings:
title: "Version ${CI_COMMIT_TAG##v}"
files:
- '*.deb'
- '*.rpm'
- '*.tar.zst'
api_key:
from_secret: gitea_token
when:
event: tag

19
.woodpecker/manifest.yml Normal file
View File

@@ -0,0 +1,19 @@
labels:
platform: linux/amd64
steps:
- name: manifest
image: gcr.io/go-containerregistry/crane:debug
entrypoint: ["/busybox/sh", "-c", "echo $CI_SCRIPT | base64 -d | /busybox/sh -e"]
commands:
- crane auth login -u elara6331 -p $REGISTRY_TOKEN gitea.elara.ws
- crane index append -m gitea.elara.ws/elara6331/distrohop:amd64 -m gitea.elara.ws/elara6331/distrohop:arm64 -t gitea.elara.ws/elara6331/distrohop:latest
- crane index append -m gitea.elara.ws/elara6331/distrohop:amd64 -m gitea.elara.ws/elara6331/distrohop:arm64 -t gitea.elara.ws/elara6331/distrohop:${CI_COMMIT_TAG}
environment:
REGISTRY_TOKEN:
from_secret: gitea_token
when:
- event: tag
depends_on:
- build

3
Dockerfile Normal file
View File

@@ -0,0 +1,3 @@
FROM gitea.elara.ws/elara6331/static-root:latest
COPY distrohop /bin/distrohop
ENTRYPOINT [ "/bin/distrohop" ]

View File

@@ -1,6 +1,10 @@
<p align="center">
<img width="250" src="assets/logo/distrohop-text-bottom.svg">
</p>
<p align="center">
<img alt="GitHub go.mod Go version" src="https://img.shields.io/github/go-mod/go-version/Elara6331/distrohop?style=for-the-badge">&thinsp;
<a href="https://goreportcard.com/report/go.elara.ws/distrohop"><img src="https://goreportcard.com/badge/go.elara.ws/distrohop?style=for-the-badge"></a>
</p>
---

View File

@@ -6,6 +6,7 @@ After=network.target
ExecStart=distrohop
Restart=always
StandardOutput=journal
Environment=HOME=/root
[Install]
WantedBy=default.target