Merge pull request #436 from unpoller/upload-to-packagecloud
Packagecloud uploads
This commit is contained in:
commit
fc4c9a7a2e
|
|
@ -23,6 +23,8 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- run: git fetch --force --tags
|
- run: git fetch --force --tags
|
||||||
|
- name: Install RPM tooling
|
||||||
|
run: sudo apt-get install -y rpm
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1
|
uses: docker/setup-qemu-action@v1
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
|
|
@ -34,12 +36,26 @@ jobs:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Import GPG key
|
||||||
|
id: import_gpg
|
||||||
|
uses: crazy-max/ghaction-import-gpg@v5
|
||||||
|
with:
|
||||||
|
gpg_private_key: ${{ secrets.PACKAGECLOUD_SIGNING_GPG }}
|
||||||
|
- name: "Setup Ruby for packagecloud uploads"
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: '2.7'
|
||||||
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
||||||
|
- name: "Install packagecloud gem"
|
||||||
|
run: gem install package_cloud
|
||||||
- uses: actions/setup-go@v3
|
- uses: actions/setup-go@v3
|
||||||
with:
|
with:
|
||||||
go-version: '>=1.19.3'
|
go-version: '>=1.19.3'
|
||||||
cache: true
|
cache: true
|
||||||
# More assembly might be required: Docker logins, GPG, etc. It all depends
|
# More assembly might be required: Docker logins, GPG, etc. It all depends
|
||||||
# on your needs.
|
# on your needs.
|
||||||
|
- name: "make key file"
|
||||||
|
run: "echo '${{ secrets.PACKAGECLOUD_SIGNING_GPG }}' > /tmp/key.gpg"
|
||||||
- uses: goreleaser/goreleaser-action@v2
|
- uses: goreleaser/goreleaser-action@v2
|
||||||
with:
|
with:
|
||||||
# either 'goreleaser' (default) or 'goreleaser-pro':
|
# either 'goreleaser' (default) or 'goreleaser-pro':
|
||||||
|
|
@ -53,4 +69,6 @@ jobs:
|
||||||
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
||||||
DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}
|
DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}
|
||||||
DOCKER_IMAGE_NAME: ${{ env.DOCKER_IMAGE_NAME }}
|
DOCKER_IMAGE_NAME: ${{ env.DOCKER_IMAGE_NAME }}
|
||||||
|
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}
|
||||||
|
PACKAGECLOUD_SIGNING_GPG: /tmp/key.gpg
|
||||||
|
PACKAGECLOUD_SIGNING_KEY_ID: ${{ steps.import_gpg.outputs.keyid }}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
# Change this line.
|
# Change this line.
|
||||||
/unifi-poller
|
/unifi-poller
|
||||||
|
/unpoller
|
||||||
/init/macos/*.app/Contents/MacOS/*
|
/init/macos/*.app/Contents/MacOS/*
|
||||||
# The rest is probably fine.
|
# The rest is probably fine.
|
||||||
/rsrc*.syso
|
/rsrc*.syso
|
||||||
|
|
|
||||||
151
.goreleaser.yaml
151
.goreleaser.yaml
|
|
@ -1,20 +1,20 @@
|
||||||
# .goreleaser.yaml
|
# .goreleaser.yaml
|
||||||
|
before:
|
||||||
|
hooks:
|
||||||
|
- make man
|
||||||
|
- make readme
|
||||||
|
- make rsrc
|
||||||
|
|
||||||
builds:
|
builds:
|
||||||
- env:
|
- id: unpoller
|
||||||
- CGO_ENABLED=0
|
env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
binary: unpoller
|
binary: unpoller
|
||||||
goarm:
|
|
||||||
- 6
|
|
||||||
- 7
|
|
||||||
goos:
|
goos:
|
||||||
- linux
|
- linux
|
||||||
- darwin
|
|
||||||
- windows
|
|
||||||
- freebsd
|
- freebsd
|
||||||
goarch:
|
goarch:
|
||||||
- amd64
|
- amd64
|
||||||
- arm64
|
|
||||||
- arm
|
|
||||||
ignore:
|
ignore:
|
||||||
- goos: darwin
|
- goos: darwin
|
||||||
goarch: 386
|
goarch: 386
|
||||||
|
|
@ -23,8 +23,82 @@ builds:
|
||||||
- goamd64: v4
|
- goamd64: v4
|
||||||
- goos: freebsd
|
- goos: freebsd
|
||||||
goarch: 386
|
goarch: 386
|
||||||
|
- id: unpoller-mac
|
||||||
|
env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
binary: unpoller
|
||||||
|
goos:
|
||||||
|
- darwin
|
||||||
|
goarch:
|
||||||
|
- amd64
|
||||||
|
- arm64
|
||||||
|
ignore:
|
||||||
|
- goos: darwin
|
||||||
|
goarch: 386
|
||||||
|
- id: unpoller-linux-arm
|
||||||
|
env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
binary: unpoller
|
||||||
|
goarm:
|
||||||
|
- 6
|
||||||
|
- 7
|
||||||
|
goos:
|
||||||
|
- linux
|
||||||
|
goarch:
|
||||||
|
- arm64
|
||||||
|
- arm
|
||||||
|
- id: unpoller-windows
|
||||||
|
env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
binary: unpoller
|
||||||
|
goos:
|
||||||
|
- windows
|
||||||
|
goarch:
|
||||||
|
- amd64
|
||||||
|
|
||||||
|
archives:
|
||||||
|
- id: unpoller
|
||||||
|
builds:
|
||||||
|
- unpoller
|
||||||
|
files:
|
||||||
|
- LICENSE
|
||||||
|
- README.md
|
||||||
|
- examples/up.*.example
|
||||||
|
- id: unpoller-linux-arm
|
||||||
|
builds:
|
||||||
|
- unpoller-linux-arm
|
||||||
|
files:
|
||||||
|
- LICENSE
|
||||||
|
- README.html
|
||||||
|
- unpoller_manual.html
|
||||||
|
- examples/up.*.example
|
||||||
|
- id: unpoller-mac
|
||||||
|
builds:
|
||||||
|
- unpoller-mac
|
||||||
|
files:
|
||||||
|
- LICENSE
|
||||||
|
- README.html
|
||||||
|
- unpoller_manual.html
|
||||||
|
- examples/up.*.example
|
||||||
|
- id: unpoller-windows
|
||||||
|
format_overrides:
|
||||||
|
- goos: windows
|
||||||
|
format: zip
|
||||||
|
builds:
|
||||||
|
- unpoller-windows
|
||||||
|
files:
|
||||||
|
- LICENSE
|
||||||
|
- README.html
|
||||||
|
- unpoller_manual.html
|
||||||
|
- rsrc_windows_*.syso
|
||||||
|
- examples/up.*.example
|
||||||
|
|
||||||
dockers:
|
dockers:
|
||||||
- # amd64
|
- id: docker-linux-amd64
|
||||||
|
ids:
|
||||||
|
- unpoller
|
||||||
|
goos: linux
|
||||||
|
goarch: amd64
|
||||||
image_templates:
|
image_templates:
|
||||||
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest-amd64"
|
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest-amd64"
|
||||||
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}-amd64"
|
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}-amd64"
|
||||||
|
|
@ -49,7 +123,13 @@ dockers:
|
||||||
- "examples/up.conf.example"
|
- "examples/up.conf.example"
|
||||||
- "examples/up.json.example"
|
- "examples/up.json.example"
|
||||||
- "examples/up.yaml.example"
|
- "examples/up.yaml.example"
|
||||||
- # arm64
|
- "README.html"
|
||||||
|
- "unpoller_manual.html"
|
||||||
|
- id: docker-linux-arm64
|
||||||
|
ids:
|
||||||
|
- unpoller-linux-arm
|
||||||
|
goos: linux
|
||||||
|
goarch: arm64
|
||||||
image_templates:
|
image_templates:
|
||||||
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest-arm64v8"
|
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest-arm64v8"
|
||||||
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}-arm64v8"
|
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}-arm64v8"
|
||||||
|
|
@ -74,7 +154,14 @@ dockers:
|
||||||
- "examples/up.conf.example"
|
- "examples/up.conf.example"
|
||||||
- "examples/up.json.example"
|
- "examples/up.json.example"
|
||||||
- "examples/up.yaml.example"
|
- "examples/up.yaml.example"
|
||||||
- # armv7
|
- "README.html"
|
||||||
|
- "unpoller_manual.html"
|
||||||
|
- id: docker-linux-armv7
|
||||||
|
ids:
|
||||||
|
- unpoller-linux-arm
|
||||||
|
goos: linux
|
||||||
|
goarch: arm
|
||||||
|
goarm: "7"
|
||||||
image_templates:
|
image_templates:
|
||||||
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest-armv7"
|
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest-armv7"
|
||||||
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}-armv7"
|
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}-armv7"
|
||||||
|
|
@ -99,6 +186,9 @@ dockers:
|
||||||
- "examples/up.conf.example"
|
- "examples/up.conf.example"
|
||||||
- "examples/up.json.example"
|
- "examples/up.json.example"
|
||||||
- "examples/up.yaml.example"
|
- "examples/up.yaml.example"
|
||||||
|
- "README.html"
|
||||||
|
- "unpoller_manual.html"
|
||||||
|
|
||||||
docker_manifests:
|
docker_manifests:
|
||||||
- name_template: '{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest'
|
- name_template: '{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest'
|
||||||
create_flags:
|
create_flags:
|
||||||
|
|
@ -129,7 +219,9 @@ docker_manifests:
|
||||||
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:v{{ .Major }}-armv7"
|
- "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:v{{ .Major }}-armv7"
|
||||||
|
|
||||||
nfpms:
|
nfpms:
|
||||||
-
|
- id: unpoller-packages
|
||||||
|
builds:
|
||||||
|
- unpoller
|
||||||
replacements:
|
replacements:
|
||||||
amd64: 64-bit
|
amd64: 64-bit
|
||||||
386: 32-bit
|
386: 32-bit
|
||||||
|
|
@ -142,7 +234,6 @@ nfpms:
|
||||||
description: Telemetry and Observability for your UniFi Network
|
description: Telemetry and Observability for your UniFi Network
|
||||||
license: MIT
|
license: MIT
|
||||||
formats:
|
formats:
|
||||||
- apk
|
|
||||||
- deb
|
- deb
|
||||||
- rpm
|
- rpm
|
||||||
- termux.deb # Since GoReleaser v1.11.
|
- termux.deb # Since GoReleaser v1.11.
|
||||||
|
|
@ -150,6 +241,9 @@ nfpms:
|
||||||
version_metadata: git
|
version_metadata: git
|
||||||
section: default
|
section: default
|
||||||
priority: extra
|
priority: extra
|
||||||
|
provides:
|
||||||
|
- unifi-poller
|
||||||
|
- unpoller
|
||||||
|
|
||||||
# Contents to add to the package.
|
# Contents to add to the package.
|
||||||
# GoReleaser will automatically add the binaries.
|
# GoReleaser will automatically add the binaries.
|
||||||
|
|
@ -169,5 +263,34 @@ nfpms:
|
||||||
- src: examples/up.yaml.example
|
- src: examples/up.yaml.example
|
||||||
dst: /etc/unpoller/up.yaml.example
|
dst: /etc/unpoller/up.yaml.example
|
||||||
type: config
|
type: config
|
||||||
|
- src: "README.html"
|
||||||
|
dst: /etc/unpoller/readme.html
|
||||||
|
type: config
|
||||||
|
- src: "unpoller_manual.html"
|
||||||
|
dst: /etc/unpoller/manual.html
|
||||||
|
type: config
|
||||||
|
# signing
|
||||||
|
scripts:
|
||||||
|
postinstall: "scripts/after-install.sh"
|
||||||
|
preremove: "scripts/before-remove.sh"
|
||||||
|
|
||||||
|
signs:
|
||||||
|
- id: default
|
||||||
|
artifacts: all
|
||||||
|
ids:
|
||||||
|
- unpoller
|
||||||
|
- unpoller-linux-arm
|
||||||
|
- unpoller-windows
|
||||||
|
- unpoller-mac
|
||||||
|
|
||||||
universal_binaries:
|
universal_binaries:
|
||||||
- replace: true
|
- replace: true
|
||||||
|
ids:
|
||||||
|
- unpoller-mac
|
||||||
|
|
||||||
|
publishers:
|
||||||
|
- name: "packagecloud-publisher"
|
||||||
|
ids:
|
||||||
|
- unpoller-packages
|
||||||
|
cmd: "scripts/packagecloud_push.sh '{{ .Tag }}' '{{ .Env.PACKAGECLOUD_TOKEN }}' 'unpoller' '{{ .ArtifactPath }}' '{{ .Os }}'"
|
||||||
|
|
||||||
|
|
|
||||||
2
Makefile
2
Makefile
|
|
@ -126,7 +126,7 @@ rsrc: rsrc.syso
|
||||||
rsrc.syso: init/windows/application.ico init/windows/manifest.xml $(shell go env GOPATH)/bin/rsrc
|
rsrc.syso: init/windows/application.ico init/windows/manifest.xml $(shell go env GOPATH)/bin/rsrc
|
||||||
$(shell go env GOPATH)/bin/rsrc -ico init/windows/application.ico -manifest init/windows/manifest.xml
|
$(shell go env GOPATH)/bin/rsrc -ico init/windows/application.ico -manifest init/windows/manifest.xml
|
||||||
$(shell go env GOPATH)/bin/rsrc:
|
$(shell go env GOPATH)/bin/rsrc:
|
||||||
cd /tmp ; go get $(RSRC_BIN) ; go install $(RSRC_BIN)
|
cd /tmp ; go get $(RSRC_BIN) ; go install $(RSRC_BIN)@latest
|
||||||
|
|
||||||
####################
|
####################
|
||||||
##### Binaries #####
|
##### Binaries #####
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -exo pipefail
|
||||||
|
|
||||||
|
export GITTAG=$1
|
||||||
|
export PACKAGECLOUD_TOKEN=$2
|
||||||
|
export PACKAGE_NAME=$3
|
||||||
|
export ARTIFACT_PATH=$4
|
||||||
|
export ARTIFACT_OS=$5
|
||||||
|
|
||||||
|
if [ ! -n "${GITTAG}" ]; then
|
||||||
|
echo "GITTAG must be set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -n "${PACKAGECLOUD_TOKEN}" ]; then
|
||||||
|
echo "PACKAGECLOUD_TOKEN must be set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -n "${PACKAGE_NAME}" ]; then
|
||||||
|
echo "PACKAGE_NAME must be set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
export PACKAGE_VERSION=${GITTAG}
|
||||||
|
export PACKAGE_DIR="./dist/${PACKAGE_NAME}_linux_amd64"
|
||||||
|
|
||||||
|
# NOTE: compatibility with goreleaser 1.8.3 and later
|
||||||
|
# See more: https://github.com/goreleaser/goreleaser/commit/63436392db6ac0557513535fc3ee4223a44810ed
|
||||||
|
if [[ -d "${PACKAGE_DIR}_v1" ]]; then
|
||||||
|
export PACKAGE_DIR="${PACKAGE_DIR}_v1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -d "${PACKAGE_DIR}" ]]; then
|
||||||
|
export PACKAGE_DIR="./dist/unpoller_linux_amd64"
|
||||||
|
|
||||||
|
if [[ ! -d ${PACKAGE_DIR} ]]; then
|
||||||
|
export PACKAGE_DIR="${PACKAGE_DIR}_v1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
export PACKAGE_CLOUD_REPO="golift/pkgs"
|
||||||
|
if [[ ${PACKAGE_VERSION} =~ .+-rc ]]; then
|
||||||
|
export PACKAGE_CLOUD_REPO="golift/unstable"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export SUPPORTED_UBUNTU_VERSIONS="focal"
|
||||||
|
export SUPPORTED_REDHAT_VERSIONS="7"
|
||||||
|
|
||||||
|
if [[ $ARTIFACT_PATH == *termux* ]]; then
|
||||||
|
# skip termux builds
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
for ubuntu_version in ${SUPPORTED_UBUNTU_VERSIONS}
|
||||||
|
do
|
||||||
|
if [[ $ARTIFACT_PATH == *.deb ]]; then
|
||||||
|
package_cloud push ${PACKAGE_CLOUD_REPO}/ubuntu/${ubuntu_version} $ARTIFACT_PATH
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for redhat_version in ${SUPPORTED_REDHAT_VERSIONS}
|
||||||
|
do
|
||||||
|
if [[ $ARTIFACT_PATH == *.rpm ]]; then
|
||||||
|
package_cloud push ${PACKAGE_CLOUD_REPO}/el/${redhat_version} $ARTIFACT_PATH
|
||||||
|
fi
|
||||||
|
done
|
||||||
Loading…
Reference in New Issue