Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
caf722905b | ||
|
|
eea0b3fea6 |
@@ -36,7 +36,10 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Prepare Environment
|
- name: Prepare Environment
|
||||||
run: |
|
run: |
|
||||||
printf '%s\n' 'https://dl-cdn.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories
|
printf '%s\n' \
|
||||||
|
'https://dl-cdn.alpinelinux.org/alpine/edge/main' \
|
||||||
|
'https://dl-cdn.alpinelinux.org/alpine/edge/community' \
|
||||||
|
>> /etc/apk/repositories
|
||||||
apk add --no-cache --update atools-apkbuild-lint bash ca-certificates curl git jq nodejs shellcheck tar
|
apk add --no-cache --update atools-apkbuild-lint bash ca-certificates curl git jq nodejs shellcheck tar
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
@@ -90,7 +93,10 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Prepare Environment
|
- name: Prepare Environment
|
||||||
run: |
|
run: |
|
||||||
printf '%s\n' 'https://dl-cdn.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories
|
printf '%s\n' \
|
||||||
|
'https://dl-cdn.alpinelinux.org/alpine/edge/main' \
|
||||||
|
'https://dl-cdn.alpinelinux.org/alpine/edge/community' \
|
||||||
|
>> /etc/apk/repositories
|
||||||
apk add --no-cache --update abuild-rootbld alpine-sdk bash ca-certificates doas git nodejs sudo
|
apk add --no-cache --update abuild-rootbld alpine-sdk bash ca-certificates doas git nodejs sudo
|
||||||
mkdir -p "$ALPINE_RUST_CACHE_ROOT"
|
mkdir -p "$ALPINE_RUST_CACHE_ROOT"
|
||||||
chown -R 1000:1000 /cache/public-alpine-packages/v3.24
|
chown -R 1000:1000 /cache/public-alpine-packages/v3.24
|
||||||
@@ -132,7 +138,10 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Prepare Environment
|
- name: Prepare Environment
|
||||||
run: |
|
run: |
|
||||||
printf '%s\n' 'https://dl-cdn.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories
|
printf '%s\n' \
|
||||||
|
'https://dl-cdn.alpinelinux.org/alpine/edge/main' \
|
||||||
|
'https://dl-cdn.alpinelinux.org/alpine/edge/community' \
|
||||||
|
>> /etc/apk/repositories
|
||||||
apk add --no-cache --update abuild-rootbld alpine-sdk bash ca-certificates curl doas docker-cli git jq nodejs rsync shellcheck sudo tar
|
apk add --no-cache --update abuild-rootbld alpine-sdk bash ca-certificates curl doas docker-cli git jq nodejs rsync shellcheck sudo tar
|
||||||
trivy_archive="trivy_${TRIVY_VERSION}_Linux-64bit.tar.gz"
|
trivy_archive="trivy_${TRIVY_VERSION}_Linux-64bit.tar.gz"
|
||||||
curl -fsSL -o "/tmp/${trivy_archive}" "https://github.com/aquasecurity/trivy/releases/download/v${TRIVY_VERSION}/${trivy_archive}"
|
curl -fsSL -o "/tmp/${trivy_archive}" "https://github.com/aquasecurity/trivy/releases/download/v${TRIVY_VERSION}/${trivy_archive}"
|
||||||
@@ -198,3 +207,16 @@ jobs:
|
|||||||
- name: Publish Alpine packages
|
- name: Publish Alpine packages
|
||||||
if: github.ref == 'refs/heads/main'
|
if: github.ref == 'refs/heads/main'
|
||||||
run: scripts/apk/publish-gitea.sh
|
run: scripts/apk/publish-gitea.sh
|
||||||
|
|
||||||
|
- name: Verify published Alpine registry
|
||||||
|
if: github.ref == 'refs/heads/main'
|
||||||
|
run: |
|
||||||
|
registry_url="${INSTANCE_URL}/api/packages/${PACKAGE_OWNER}/alpine/${ALPINE_REGISTRY_BRANCH}/${ALPINE_REGISTRY_REPOSITORY}"
|
||||||
|
for arch in ${ALPINE_ARCHES}; do
|
||||||
|
index_path="/tmp/APKINDEX-${arch}.tar.gz"
|
||||||
|
if ! curl --fail --silent --show-error --location \
|
||||||
|
--output "${index_path}" \
|
||||||
|
"${registry_url}/${arch}/APKINDEX.tar.gz" || ! test -s "${index_path}"; then
|
||||||
|
echo "::warning::Published Alpine index is unavailable for ${arch}: ${registry_url}/${arch}/APKINDEX.tar.gz"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|||||||
@@ -17,14 +17,14 @@ https://code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages
|
|||||||
|
|
||||||
## Available Packages
|
## Available Packages
|
||||||
|
|
||||||
| Package | APK Name | Package Version | Package Type | Purpose |
|
| Package | APK Name | Package Version | Package Type | Purpose |
|
||||||
|-----------------------------------------------------------|--------------|-----------------|----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|
|
|-----------------------------------------------------------------|-----------------|-----------------|----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|
|
||||||
| [SeaweedFS](packaging/alpine/local/seaweedfs/README.md) | `seaweedfs` | `4.48` | Binary repackaging of official upstream release tarballs | Ships current SeaweedFS features with Alpine OpenRC role splits. |
|
| [SeaweedFS](packaging/alpine/local/seaweedfs/README.md) | `seaweedfs` | `4.48` | Binary repackaging of official upstream release tarballs | Ships current SeaweedFS features with Alpine OpenRC role splits. |
|
||||||
| [GreptimeDB](packaging/alpine/local/greptimedb/README.md) | `greptimedb` | `1.2.1` | Source build from upstream release | Provides a current GreptimeDB build and component OpenRC packages before it is available from Alpine community. |
|
| [GreptimeDB](packaging/alpine/local/greptimedb/README.md) | `greptimedb` | `1.2.1` | Source build from upstream release | Provides a current GreptimeDB build and component OpenRC packages before it is available from Alpine community. |
|
||||||
| [LavinMQ](packaging/alpine/local/lavinmq/README.md) | `lavinmq` | `2.10.1` | Source build from upstream release | Provides a current LavinMQ build on Alpine 3.24 with matching Crystal support. |
|
| [LavinMQ](packaging/alpine/local/lavinmq/README.md) | `lavinmq` | `2.10.3` | Source build from upstream release | Provides a current LavinMQ build on Alpine 3.24 with matching Crystal support. |
|
||||||
| [Gitea](packaging/alpine/local/gitea/README.md) | `gitea` | `28.2.0` | Binary repackaging of official upstream release binaries | Ships current Gitea releases with the expected Alpine runtime layout and OpenRC service. |
|
| [Gitea](packaging/alpine/local/gitea/README.md) | `gitea` | `28.2.0` | Binary repackaging of official upstream release binaries | Ships current Gitea releases with the expected Alpine runtime layout and OpenRC service. |
|
||||||
| [Apache NiFi](packaging/alpine/local/nifi/README.md) | `nifi` | `2.12.0` | Binary repackaging of the official Standard distribution | Provides Apache NiFi 2 with a secure default configuration and OpenRC service. |
|
| [Apache NiFi](packaging/alpine/local/nifi/README.md) | `nifi` | `2.12.0` | Binary repackaging of the official Standard distribution | Provides Apache NiFi 2 with a secure default configuration and OpenRC service. |
|
||||||
| [rclone OpenRC](packaging/alpine/local/rclone-openrc/README.md) | `rclone-openrc` | `0.1.0` | OpenRC integration for Alpine's rclone package | Provides reusable, instance-capable OpenRC supervision for rclone commands. |
|
| [rclone OpenRC](packaging/alpine/local/rclone-openrc/README.md) | `rclone-openrc` | `0.1.0` | OpenRC integration for Alpine's rclone package | Provides reusable, instance-capable OpenRC supervision for rclone commands. |
|
||||||
|
|
||||||
## Use In Production
|
## Use In Production
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de>
|
# Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de>
|
||||||
pkgname=gitea
|
pkgname=gitea
|
||||||
pkgver=28.2.0
|
pkgver=28.2.0
|
||||||
pkgrel=0
|
pkgrel=1
|
||||||
pkgdesc="Self-hosted Git service written in Go"
|
pkgdesc="Self-hosted Git service written in Go"
|
||||||
url="https://about.gitea.com/"
|
url="https://about.gitea.com/"
|
||||||
arch="x86_64 aarch64"
|
arch="x86_64 aarch64"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de>
|
# Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de>
|
||||||
pkgname=lavinmq
|
pkgname=lavinmq
|
||||||
pkgver=2.10.2
|
pkgver=2.10.3
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="High-performance AMQP and MQTT message queue server"
|
pkgdesc="High-performance AMQP and MQTT message queue server"
|
||||||
url="https://github.com/cloudamqp/lavinmq"
|
url="https://github.com/cloudamqp/lavinmq"
|
||||||
@@ -82,9 +82,9 @@ _logrotate() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sha512sums="
|
sha512sums="
|
||||||
35757407adb6fdd6378c65cde229471bd362b6a7fdc13279658312ef8a7304c0557619a1394a0b4cf33ef25ffb6c039f65c217f2af37bf12fc01b73d84e55e69 lavinmq-2.10.2.tar.gz
|
f61036f58271558685c38fea06ae32c07239160e271926b4dd52d9f8bbb3047d3cd7904572723e59269d09deff610f498ff325efaa0cefd22b2567c77c8ea05a lavinmq-2.10.3.tar.gz
|
||||||
d0dfdd5c0e474024f57deb9e31c76e3f176e798c8d21dea53d3aea1b05436bd03fa34e69ccddf322bc89adedce5f379df5a316cddbbdfe12520e5bf672ad8228 lavinmq-2.10.2-shards.tar.gz
|
d0dfdd5c0e474024f57deb9e31c76e3f176e798c8d21dea53d3aea1b05436bd03fa34e69ccddf322bc89adedce5f379df5a316cddbbdfe12520e5bf672ad8228 lavinmq-2.10.3-shards.tar.gz
|
||||||
ae3cea2534b211abbcbd1e4fcb6da73dfaf383a19aef1c45f367cba77492cc20a7ce8283fc42f26c0a023149114c369bed307fb8cde0b8f27fba61165092e986 lavinmq-2.10.2-assets.tar.gz
|
ae3cea2534b211abbcbd1e4fcb6da73dfaf383a19aef1c45f367cba77492cc20a7ce8283fc42f26c0a023149114c369bed307fb8cde0b8f27fba61165092e986 lavinmq-2.10.3-assets.tar.gz
|
||||||
62a609d50f28db960098c4c84ce4f1dad78413366a9a9aca18fe321114d687be3bf7b71924d4ace69bd74383c5ac40d2ee09ae0eef9c1bfe653b97448e42e110 lavinmq.confd
|
62a609d50f28db960098c4c84ce4f1dad78413366a9a9aca18fe321114d687be3bf7b71924d4ace69bd74383c5ac40d2ee09ae0eef9c1bfe653b97448e42e110 lavinmq.confd
|
||||||
1853196e70297b5c4a2207fde50df735620cf6d99c4994644fd676bffaf863d67300ad7ae771c4bbb86fce1a0485c2a7968cf912c5f5bb878e08b15e5a28ba1b lavinmq.initd
|
1853196e70297b5c4a2207fde50df735620cf6d99c4994644fd676bffaf863d67300ad7ae771c4bbb86fce1a0485c2a7968cf912c5f5bb878e08b15e5a28ba1b lavinmq.initd
|
||||||
9999dd6a96bd29a3d0bda1b2110af940b15acf1250a0f3ba6c93d16bd62063ab1c1dfa4c237da99bbb401150517abde59e2c7275f4b72c3eb7c90e1ce61d43b9 lavinmq.logrotate
|
9999dd6a96bd29a3d0bda1b2110af940b15acf1250a0f3ba6c93d16bd62063ab1c1dfa4c237da99bbb401150517abde59e2c7275f4b72c3eb7c90e1ce61d43b9 lavinmq.logrotate
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,7 @@
|
|||||||
# Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de>
|
# Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de>
|
||||||
pkgname=nifi
|
pkgname=nifi
|
||||||
pkgver=2.12.0
|
pkgver=2.12.0
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
pkgdesc="Reliable system for processing and distributing data"
|
pkgdesc="Reliable system for processing and distributing data"
|
||||||
url="https://nifi.apache.org/"
|
url="https://nifi.apache.org/"
|
||||||
arch="x86_64 aarch64"
|
arch="x86_64 aarch64"
|
||||||
|
|||||||
@@ -4,7 +4,9 @@ FROM alpine:${ALPINE_VERSION}
|
|||||||
ARG BUILDER_UID=1000
|
ARG BUILDER_UID=1000
|
||||||
ARG BUILDER_GID=1000
|
ARG BUILDER_GID=1000
|
||||||
|
|
||||||
RUN printf '%s\n' 'https://dl-cdn.alpinelinux.org/alpine/edge/community' \
|
RUN printf '%s\n' \
|
||||||
|
'https://dl-cdn.alpinelinux.org/alpine/edge/main' \
|
||||||
|
'https://dl-cdn.alpinelinux.org/alpine/edge/community' \
|
||||||
>> /etc/apk/repositories
|
>> /etc/apk/repositories
|
||||||
|
|
||||||
RUN apk add --no-cache \
|
RUN apk add --no-cache \
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ if [[ "${#apks[@]}" -eq 0 ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
declare -A expected_apks=()
|
declare -A expected_apks=()
|
||||||
|
declare -A package_names=()
|
||||||
while IFS= read -r package_dir; do
|
while IFS= read -r package_dir; do
|
||||||
apk_validate_package_dir "${package_dir}"
|
apk_validate_package_dir "${package_dir}"
|
||||||
for arch in ${arches}; do
|
for arch in ${arches}; do
|
||||||
@@ -61,6 +62,10 @@ while IFS= read -r package_dir; do
|
|||||||
while IFS= read -r apk_name; do
|
while IFS= read -r apk_name; do
|
||||||
expected_apks["${package_root}/${arch}/${apk_name}"]=1
|
expected_apks["${package_root}/${arch}/${apk_name}"]=1
|
||||||
done < <(apk_package_apk_names "${package_dir}" "${arch}")
|
done < <(apk_package_apk_names "${package_dir}" "${arch}")
|
||||||
|
|
||||||
|
while IFS= read -r package_version; do
|
||||||
|
package_names["${package_version%%=*}"]=1
|
||||||
|
done < <(apk_package_versioned_names "${package_dir}" "${arch}")
|
||||||
done
|
done
|
||||||
done < <(apk_all_package_dirs "${repo_root}")
|
done < <(apk_all_package_dirs "${repo_root}")
|
||||||
|
|
||||||
@@ -116,3 +121,32 @@ for apk in "${current_apks[@]}"; do
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Alpine's repository path groups registry files, but does not associate package
|
||||||
|
# records with the Gitea code repository. Link each package explicitly so it is
|
||||||
|
# visible from the repository's Packages tab as well as the owner package list.
|
||||||
|
for package_name in "${!package_names[@]}"; do
|
||||||
|
link_url="${instance_url}/api/v1/packages/${owner}/alpine/${package_name}/-/link/${repository}"
|
||||||
|
status="$(
|
||||||
|
curl --silent --show-error --location \
|
||||||
|
--request POST \
|
||||||
|
--user "${user}:${token}" \
|
||||||
|
--write-out '%{http_code}' \
|
||||||
|
--output /tmp/gitea-apk-link-response \
|
||||||
|
"${link_url}"
|
||||||
|
)"
|
||||||
|
|
||||||
|
case "${status}" in
|
||||||
|
201)
|
||||||
|
printf 'linked to repository: %s\n' "${package_name}"
|
||||||
|
;;
|
||||||
|
409)
|
||||||
|
printf 'already linked to repository: %s\n' "${package_name}"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf 'repository link failed for %s: HTTP %s\n' "${package_name}" "${status}" >&2
|
||||||
|
cat /tmp/gitea-apk-link-response >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user