Update SeaweedFS and add outdated checks
Build Alpine Packages / build-and-publish (v3.24, 3.24) (push) Has been cancelled
Build Alpine Packages / build-and-publish (v3.24, 3.24) (push) Has been cancelled
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
name: Build Alpine Packages
|
name: Build Alpine Packages
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "17 5 * * 1"
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
@@ -48,9 +50,24 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
scripts/apk/clean.sh
|
scripts/apk/clean.sh
|
||||||
find packaging/alpine/local -mindepth 2 -maxdepth 2 -name APKBUILD -exec apkbuild-lint {} +
|
find packaging/alpine/local -mindepth 2 -maxdepth 2 -name APKBUILD -exec apkbuild-lint {} +
|
||||||
|
scripts/apk/outdated.sh | tee update-check.txt
|
||||||
|
if [ -n "${GITHUB_STEP_SUMMARY:-}" ]; then
|
||||||
|
{
|
||||||
|
echo "## Upstream update check"
|
||||||
|
echo
|
||||||
|
echo '```text'
|
||||||
|
cat update-check.txt
|
||||||
|
echo '```'
|
||||||
|
} >> "$GITHUB_STEP_SUMMARY"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Prepare package cache
|
||||||
|
if: github.event_name != 'schedule'
|
||||||
|
run: |
|
||||||
scripts/apk/ci-package-cache.sh prepare
|
scripts/apk/ci-package-cache.sh prepare
|
||||||
|
|
||||||
- name: Build packages
|
- name: Build packages
|
||||||
|
if: github.event_name != 'schedule'
|
||||||
run: |
|
run: |
|
||||||
scripts/apk/ci-build.sh
|
scripts/apk/ci-build.sh
|
||||||
scripts/apk/ci-package-cache.sh sync
|
scripts/apk/ci-package-cache.sh sync
|
||||||
@@ -58,6 +75,7 @@ jobs:
|
|||||||
scripts/apk/list-packages.sh
|
scripts/apk/list-packages.sh
|
||||||
|
|
||||||
- name: Check artifact upload support
|
- name: Check artifact upload support
|
||||||
|
if: github.event_name != 'schedule'
|
||||||
id: artifact-upload
|
id: artifact-upload
|
||||||
run: |
|
run: |
|
||||||
if [ -n "${ACTIONS_RUNTIME_TOKEN:-}" ]; then
|
if [ -n "${ACTIONS_RUNTIME_TOKEN:-}" ]; then
|
||||||
@@ -67,18 +85,20 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Upload generated CI assets
|
- name: Upload generated CI assets
|
||||||
if: steps.artifact-upload.outputs.available == 'true'
|
if: github.event_name != 'schedule' && steps.artifact-upload.outputs.available == 'true'
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: greptimedb-musl-binaries-${{ matrix.alpine_registry_branch }}
|
name: greptimedb-musl-binaries-${{ matrix.alpine_registry_branch }}
|
||||||
path: packages/ci-assets/
|
path: packages/ci-assets/
|
||||||
|
|
||||||
- name: Smoke test
|
- name: Smoke test
|
||||||
|
if: github.event_name != 'schedule'
|
||||||
run: scripts/apk/ci-smoke.sh
|
run: scripts/apk/ci-smoke.sh
|
||||||
|
|
||||||
- name: Runtime test
|
- name: Runtime test
|
||||||
|
if: github.event_name != 'schedule'
|
||||||
run: scripts/apk/runtime-test.sh
|
run: scripts/apk/runtime-test.sh
|
||||||
|
|
||||||
- name: Publish Alpine packages
|
- name: Publish Alpine packages
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request' && github.event_name != 'schedule'
|
||||||
run: scripts/apk/publish-gitea.sh
|
run: scripts/apk/publish-gitea.sh
|
||||||
|
|||||||
@@ -17,12 +17,12 @@ https://code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages
|
|||||||
|
|
||||||
## Available Packages
|
## Available Packages
|
||||||
|
|
||||||
| Package | APK name | Package type | Purpose |
|
| Package | APK Name | Package Version | Package Type | Purpose |
|
||||||
| --- | --- | --- | --- |
|
|-----------------------------------------------------------|--------------|-----------------|----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|
|
||||||
| [SeaweedFS](packaging/alpine/local/seaweedfs/README.md) | `seaweedfs` | 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.39` | Binary repackaging of official upstream release tarballs | Ships current SeaweedFS features with Alpine OpenRC role splits. |
|
||||||
| [GreptimeDB](packaging/alpine/local/greptimedb/README.md) | `greptimedb` | 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.1.2` | 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` | 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.9.1` | 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` | 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` | `1.26.4` | Binary repackaging of official upstream release binaries | Ships current Gitea releases with the expected Alpine runtime layout and OpenRC service. |
|
||||||
|
|
||||||
## Use In Production
|
## Use In Production
|
||||||
|
|
||||||
@@ -61,15 +61,6 @@ Package sources live under:
|
|||||||
packaging/alpine/local/<pkgname>/
|
packaging/alpine/local/<pkgname>/
|
||||||
```
|
```
|
||||||
|
|
||||||
Currently packaged:
|
|
||||||
|
|
||||||
```text
|
|
||||||
seaweedfs SeaweedFS 4.31 binary repackaging and OpenRC role splits
|
|
||||||
greptimedb GreptimeDB 1.1.2 source build for x86_64
|
|
||||||
lavinmq LavinMQ 2.9.1 source build for x86_64
|
|
||||||
gitea Gitea 1.26.4 binary repackaging and OpenRC service
|
|
||||||
```
|
|
||||||
|
|
||||||
Local build output is written under:
|
Local build output is written under:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
@@ -100,10 +91,11 @@ apk:lint Run Alpine APKBUILD lint in Docker
|
|||||||
apk:packages List built Alpine packages and dependencies
|
apk:packages List built Alpine packages and dependencies
|
||||||
apk:publish-check Run lint, multi-arch build, package listing, and smoke test
|
apk:publish-check Run lint, multi-arch build, package listing, and smoke test
|
||||||
apk:publish-gitea Publish built packages to the Gitea Alpine package registry
|
apk:publish-gitea Publish built packages to the Gitea Alpine package registry
|
||||||
|
apk:outdated Check packaged upstream versions against latest GitHub releases
|
||||||
apk:shell Open an Alpine package build shell in Docker
|
apk:shell Open an Alpine package build shell in Docker
|
||||||
apk:smoke Install-test built packages from the local repository in Docker
|
apk:smoke Install-test built packages from the local repository in Docker
|
||||||
apk:test-install Test README installation instructions in a fresh Alpine container
|
apk:test-install Test README installation instructions in a fresh Alpine container
|
||||||
apk:test-shell Open an Alpine shell with the current local package build installed
|
apk:test-shell Open an Alpine shell with the local APK repository configured
|
||||||
apk:update-generated Refresh packaged upstream examples and shell completions
|
apk:update-generated Refresh packaged upstream examples and shell completions
|
||||||
apk:runtime-test Run package-local Docker runtime tests against the local...
|
apk:runtime-test Run package-local Docker runtime tests against the local...
|
||||||
gitea-workflow-build Run the Gitea build workflow locally through act as a pull_request event
|
gitea-workflow-build Run the Gitea build workflow locally through act as a pull_request event
|
||||||
@@ -138,11 +130,10 @@ ALPINE_APK_CACHE_SCOPE=public-alpine-packages ALPINE_PACKAGE=greptimedb mise run
|
|||||||
ALPINE_APK_CACHE_PREFIX=alpine-apk-ci ALPINE_PACKAGE=greptimedb mise run apk:build
|
ALPINE_APK_CACHE_PREFIX=alpine-apk-ci ALPINE_PACKAGE=greptimedb mise run apk:build
|
||||||
```
|
```
|
||||||
|
|
||||||
Open an Alpine test shell:
|
Open an Alpine package build shell:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
ALPINE_PACKAGE=seaweedfs mise run apk:shell
|
ALPINE_PACKAGE=seaweedfs mise run apk:shell
|
||||||
mise run apk:test-shell
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Run the install test:
|
Run the install test:
|
||||||
@@ -158,6 +149,17 @@ SKIP_BUILD=1 mise run apk:test-install
|
|||||||
SKIP_BUILD=1 mise run apk:test-shell
|
SKIP_BUILD=1 mise run apk:test-shell
|
||||||
```
|
```
|
||||||
|
|
||||||
|
`apk:test-shell` opens an Alpine shell with the local APK repository configured.
|
||||||
|
Install whichever built packages you want inside the container:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
apk add seaweedfs seaweedfs-master-openrc
|
||||||
|
weed version
|
||||||
|
|
||||||
|
apk add greptimedb greptimedb-docs greptimedb-standalone-openrc
|
||||||
|
greptime --version
|
||||||
|
```
|
||||||
|
|
||||||
Run package-local runtime tests:
|
Run package-local runtime tests:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@@ -205,6 +207,22 @@ ALPINE_PACKAGE=seaweedfs mise run apk:update-generated
|
|||||||
mise run apk:checksum
|
mise run apk:checksum
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Upstream Update Visibility
|
||||||
|
|
||||||
|
Check whether packaged upstream versions are current:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mise run apk:outdated
|
||||||
|
ALPINE_PACKAGE=seaweedfs mise run apk:outdated
|
||||||
|
```
|
||||||
|
|
||||||
|
By default this is a warning-only signal. To make outdated or unknown package
|
||||||
|
versions fail the command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
APK_UPDATE_CHECK_MODE=fail mise run apk:outdated
|
||||||
|
```
|
||||||
|
|
||||||
### Gitea Workflow
|
### Gitea Workflow
|
||||||
|
|
||||||
`.gitea/workflows/build.yml` builds and publishes `v3.24`. Pull requests
|
`.gitea/workflows/build.yml` builds and publishes `v3.24`. Pull requests
|
||||||
@@ -257,6 +275,7 @@ Then test at least one installed role in the package shell:
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
mise run apk:test-shell
|
mise run apk:test-shell
|
||||||
|
apk add seaweedfs seaweedfs-master-openrc
|
||||||
rc-service seaweedfs.master start
|
rc-service seaweedfs.master start
|
||||||
weed version
|
weed version
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env -S mise tool-stub
|
|
||||||
# GrepTimeDB 1.0.2 release binary.
|
|
||||||
|
|
||||||
version = "1.0.2"
|
|
||||||
bin = "greptime"
|
|
||||||
|
|
||||||
[platforms.linux-x64]
|
|
||||||
url = "https://github.com/GreptimeTeam/greptimedb/releases/download/v1.0.2/greptime-linux-amd64-v1.0.2.tar.gz"
|
|
||||||
checksum = "sha256:1ad1f9312ce18a49494434cf52cf9fa00093c4712728508bff4578d060fb2d89"
|
|
||||||
|
|
||||||
[platforms.linux-arm64]
|
|
||||||
url = "https://github.com/GreptimeTeam/greptimedb/releases/download/v1.0.2/greptime-linux-arm64-v1.0.2.tar.gz"
|
|
||||||
checksum = "sha256:e6567f5d97fd34b876b5653c22877c238a1633ecbe26b3b7c22b95892656c39c"
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
#!/usr/bin/env -S mise tool-stub
|
|
||||||
# SeaweedFS 4.31 release binary.
|
|
||||||
|
|
||||||
version = "4.31"
|
|
||||||
bin = "weed"
|
|
||||||
|
|
||||||
[platforms.linux-x64]
|
|
||||||
url = "https://github.com/seaweedfs/seaweedfs/releases/download/4.31/linux_amd64.tar.gz"
|
|
||||||
checksum = "sha256:81103c53453fddfa75d9d611cd3e61aa57e7a3099dc7a1de5977ab4b19211958"
|
|
||||||
size = 43223476
|
|
||||||
|
|
||||||
[platforms.linux-arm64]
|
|
||||||
url = "https://github.com/seaweedfs/seaweedfs/releases/download/4.31/linux_arm64.tar.gz"
|
|
||||||
checksum = "sha256:76ac1ffce87a2a710a3913282a19de6d9a3785f4a3586556858ec7b81a87d958"
|
|
||||||
size = 38036794
|
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
[tools]
|
[tools]
|
||||||
act = "latest"
|
act = "latest"
|
||||||
codex = "latest"
|
|
||||||
docker-cli = "latest"
|
docker-cli = "latest"
|
||||||
shellcheck = "latest"
|
shellcheck = "latest"
|
||||||
|
|
||||||
@@ -45,7 +44,7 @@ description = "Install-test built packages directly in the current Alpine enviro
|
|||||||
run = "scripts/apk/ci-smoke.sh"
|
run = "scripts/apk/ci-smoke.sh"
|
||||||
|
|
||||||
[tasks."apk:test-shell"]
|
[tasks."apk:test-shell"]
|
||||||
description = "Open an Alpine shell with the current local package build installed"
|
description = "Open an Alpine shell with the local APK repository configured"
|
||||||
run = "scripts/apk/test-shell.sh"
|
run = "scripts/apk/test-shell.sh"
|
||||||
|
|
||||||
[tasks."apk:test-install"]
|
[tasks."apk:test-install"]
|
||||||
@@ -61,6 +60,10 @@ env = { ALPINE_ARCH = "x86_64", ALPINE_REPO_NAME = "local", ALPINE_VERSION = "3.
|
|||||||
description = "List built Alpine packages and dependencies"
|
description = "List built Alpine packages and dependencies"
|
||||||
run = "scripts/apk/list-packages.sh"
|
run = "scripts/apk/list-packages.sh"
|
||||||
|
|
||||||
|
[tasks."apk:outdated"]
|
||||||
|
description = "Check packaged upstream versions against latest GitHub releases"
|
||||||
|
run = "scripts/apk/outdated.sh"
|
||||||
|
|
||||||
[tasks."apk:publish-check"]
|
[tasks."apk:publish-check"]
|
||||||
description = "Run lint, multi-arch build, package listing, and smoke test"
|
description = "Run lint, multi-arch build, package listing, and smoke test"
|
||||||
run = "scripts/apk/publish-check.sh"
|
run = "scripts/apk/publish-check.sh"
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
provider=github
|
||||||
|
repo=go-gitea/gitea
|
||||||
|
version_prefix=v
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
provider=github
|
||||||
|
repo=GreptimeTeam/greptimedb
|
||||||
|
version_prefix=v
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
provider=github
|
||||||
|
repo=cloudamqp/lavinmq
|
||||||
|
version_prefix=v
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# Maintainer: Joachim Schlöffel <me@joachim-schloeffel.com>
|
# Maintainer: Joachim Schlöffel <me@joachim-schloeffel.com>
|
||||||
pkgname=seaweedfs
|
pkgname=seaweedfs
|
||||||
pkgver=4.31
|
pkgver=4.39
|
||||||
pkgrel=3
|
pkgrel=0
|
||||||
pkgdesc="Distributed storage system for object storage, file systems, and Iceberg tables"
|
pkgdesc="Distributed storage system for object storage, file systems, and Iceberg tables"
|
||||||
url="https://github.com/seaweedfs/seaweedfs"
|
url="https://github.com/seaweedfs/seaweedfs"
|
||||||
arch="x86_64 aarch64"
|
arch="x86_64 aarch64"
|
||||||
@@ -109,15 +109,15 @@ _bashcomp() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sha512sums="
|
sha512sums="
|
||||||
60c758d6d565d0cbc533e4e5677186a4700d48be12ebbd2bd1c6b4bcf38f687d0ab1f66e0953c8a27c663549cdbae73e5fd7eda74bb422c20e10e0d0850b5ead seaweedfs-4.31-linux-amd64.tar.gz
|
1790a12d3d8a8a1926157f28bd79c599ed1c14991f137df6504a64f61d1717baaa48c14216fa896cc80f8fb848b3ec34b73d6d276a676752e2e624acc4d8312d seaweedfs-4.39-linux-amd64.tar.gz
|
||||||
93c7539fe15a0aa6192d26ac2360003961f0643e302d910179d02341b10a7243df776294fb1b0134ec2a2a9596b1abc3ce9ab701f9bc3d78f2b965ea464a4b18 seaweedfs-4.31-linux-arm64.tar.gz
|
1f46e219fdd69234daa020f27245d18c6adbfaf6801dd4a57e60a6f5b036e4ff4d6c11b5251f4ab922b90f7f8321e65bb16e5fc4f5c87e1eeafdba0e40c9a114 seaweedfs-4.39-linux-arm64.tar.gz
|
||||||
b6ce09d6d83dd70e2797a185171eea3587436fb024a99b4998f714b713244d6f768ef59f67c9b7251650d4f19d414eea231eab92099763d85cd92e41cb2bdc3f credential.toml
|
b6ce09d6d83dd70e2797a185171eea3587436fb024a99b4998f714b713244d6f768ef59f67c9b7251650d4f19d414eea231eab92099763d85cd92e41cb2bdc3f credential.toml
|
||||||
7105de7053654b8c0502521ce58585915fc831c3152801e1db02b1c5214dc3c3ed31f4fc18000665d8338c7a10ffbf0d248368bef2ef3a6d37d46cd856398366 example-credential.toml
|
7105de7053654b8c0502521ce58585915fc831c3152801e1db02b1c5214dc3c3ed31f4fc18000665d8338c7a10ffbf0d248368bef2ef3a6d37d46cd856398366 example-credential.toml
|
||||||
6213e9cff227d66a7a04237d15e2f77904f1bcdf5709fd985c1e12fe4aca0d0327db6997d567303eff47dabec3650db2a6d874b03adda41b239e04ee0c3557ee example-filer.toml
|
9e6401387698832cb4aae0876ef3e237c9b70af17db7563ed641ba40c81af99f1d6c22281bafa64fff7ee8d2c89f16ccac1322ea31c9a02b545faa4e09f08549 example-filer.toml
|
||||||
e5753bd0bcc60dc84428c40ba556c08acae61dec083a5b76640125f637532e7c5759a72cdfd95114222a7a0901a916ec3c4d12f306853cfca0fe9a0b1857893e example-master.toml
|
e5753bd0bcc60dc84428c40ba556c08acae61dec083a5b76640125f637532e7c5759a72cdfd95114222a7a0901a916ec3c4d12f306853cfca0fe9a0b1857893e example-master.toml
|
||||||
2c200c28172a5d0b1c80ab28e849287e7af8d103355638fd3183b8614d3e2b1b3482132522663f7c6d844e10e13b8c6e23fb5fba0dec2cc83de45c2f17b33477 example-notification.toml
|
2c200c28172a5d0b1c80ab28e849287e7af8d103355638fd3183b8614d3e2b1b3482132522663f7c6d844e10e13b8c6e23fb5fba0dec2cc83de45c2f17b33477 example-notification.toml
|
||||||
4b507540d57799e42ec0ee84073c6fa32c577a2f4a98bf66ee7302355080c63c65d70709115185debdee3c957e9294e79a8e461347d7148af7fdd368dc548af6 example-replication.toml
|
4b507540d57799e42ec0ee84073c6fa32c577a2f4a98bf66ee7302355080c63c65d70709115185debdee3c957e9294e79a8e461347d7148af7fdd368dc548af6 example-replication.toml
|
||||||
a0f307bc73b1aa03653c42c22a1fc704640cbd86957a417f947fe33356e03734c33782777cb1d6cb17360fc6b3930ffbe1386f89123e9dc3c21468210418aae2 example-security.toml
|
6951e1110d458238b0ef1905c4c6bb874d06f1c18b83dd8e1742534806b8db68b4410a664bf53085781e5d4d35e87941279d9c7398529ee707bb99def5055591 example-security.toml
|
||||||
70069f97edf261a2cd0669dd60adad80533609a25d7429254e0c3322d7e80337f5ff69a5581bc39e6a15442098d14d610ce5f0cb14f02c461c8d3dd440b22c56 example-shell.toml
|
70069f97edf261a2cd0669dd60adad80533609a25d7429254e0c3322d7e80337f5ff69a5581bc39e6a15442098d14d610ce5f0cb14f02c461c8d3dd440b22c56 example-shell.toml
|
||||||
be5771a5e1bf626c53f9dffbfa2a400d9b8f9626d55a7b61dcd853753561989427ba872a2638a5e6343f44dea6790678483bd29101d6495dbbfcd3029947b9a7 filer.toml
|
be5771a5e1bf626c53f9dffbfa2a400d9b8f9626d55a7b61dcd853753561989427ba872a2638a5e6343f44dea6790678483bd29101d6495dbbfcd3029947b9a7 filer.toml
|
||||||
2cd6c73a5e23e0395b6f099dcc3acf9280cbb3e13f54408571e91741c4e6b0dad85f6d4e5a92f23ad541bad57ce295c28bb8450fe11da35acbd4da25848f61e5 master.toml
|
2cd6c73a5e23e0395b6f099dcc3acf9280cbb3e13f54408571e91741c4e6b0dad85f6d4e5a92f23ad541bad57ce295c28bb8450fe11da35acbd4da25848f61e5 master.toml
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# SeaweedFS Alpine Package
|
# SeaweedFS Alpine Package
|
||||||
|
|
||||||
Repackages official SeaweedFS 4.31 Linux release tarballs for `x86_64` and
|
Repackages official SeaweedFS 4.39 Linux release tarballs for `x86_64` and
|
||||||
`aarch64`.
|
`aarch64`.
|
||||||
|
|
||||||
## Package Commands
|
## Package Commands
|
||||||
@@ -127,5 +127,5 @@ rc-service seaweedfs.master restart
|
|||||||
Pin:
|
Pin:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
apk add seaweedfs=4.31-r3
|
apk add seaweedfs=4.39-r0
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -366,6 +366,21 @@ healthcheck_enabled = false
|
|||||||
# increase the value is recommend, be sure the value in Elastic is greater or equal here
|
# increase the value is recommend, be sure the value in Elastic is greater or equal here
|
||||||
index.max_result_window = 10000
|
index.max_result_window = 10000
|
||||||
|
|
||||||
|
# for Elasticsearch 8.x clusters
|
||||||
|
[elastic8]
|
||||||
|
enabled = false
|
||||||
|
servers = [
|
||||||
|
"http://localhost1:9200",
|
||||||
|
"http://localhost2:9200",
|
||||||
|
"http://localhost3:9200",
|
||||||
|
]
|
||||||
|
username = ""
|
||||||
|
password = ""
|
||||||
|
sniff_enabled = false
|
||||||
|
healthcheck_enabled = false
|
||||||
|
# increase the value is recommend, be sure the value in Elastic is greater or equal here
|
||||||
|
index.max_result_window = 10000
|
||||||
|
|
||||||
|
|
||||||
[arangodb] # in development dont use it
|
[arangodb] # in development dont use it
|
||||||
enabled = false
|
enabled = false
|
||||||
|
|||||||
@@ -4,6 +4,15 @@
|
|||||||
# /etc/seaweedfs/security.toml
|
# /etc/seaweedfs/security.toml
|
||||||
# this file is read by master, volume server, filer, and worker
|
# this file is read by master, volume server, filer, and worker
|
||||||
|
|
||||||
|
# Any value below can also be supplied as an environment variable instead of
|
||||||
|
# living in this file: prefix the key with WEED_, upper-case it, and replace
|
||||||
|
# "." with "_". This is the recommended way to inject the secrets in here from
|
||||||
|
# a Kubernetes Secret (env valueFrom.secretKeyRef) rather than a ConfigMap.
|
||||||
|
# The JWT signing keys map to:
|
||||||
|
# WEED_JWT_SIGNING_KEY, WEED_JWT_SIGNING_READ_KEY (master <-> volume)
|
||||||
|
# WEED_JWT_FILER_SIGNING_KEY, WEED_JWT_FILER_SIGNING_READ_KEY (s3/clients <-> filer)
|
||||||
|
# A set env var wins over the file, so the file can stay empty (or absent).
|
||||||
|
|
||||||
# comma separated origins allowed to make requests to the filer and s3 gateway.
|
# comma separated origins allowed to make requests to the filer and s3 gateway.
|
||||||
# enter in this format: https://domain.com, or http://localhost:port
|
# enter in this format: https://domain.com, or http://localhost:port
|
||||||
[cors.allowed_origins]
|
[cors.allowed_origins]
|
||||||
|
|||||||
@@ -1,15 +1,41 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
repo_root="${REPO_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../../.." && pwd)}"
|
|
||||||
package_dir="${PACKAGE_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}"
|
package_dir="${PACKAGE_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}"
|
||||||
configs=(credential filer master notification replication security shell)
|
configs=(credential filer master notification replication security shell)
|
||||||
|
pkgver="$(
|
||||||
|
awk -F= '$1 == "pkgver" { print $2; exit }' "${package_dir}/APKBUILD"
|
||||||
|
)"
|
||||||
|
tmpdir="$(mktemp -d)"
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
rm -rf "${tmpdir}"
|
||||||
|
}
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
case "$(uname -m)" in
|
||||||
|
x86_64)
|
||||||
|
archive="linux_amd64.tar.gz"
|
||||||
|
;;
|
||||||
|
aarch64|arm64)
|
||||||
|
archive="linux_arm64.tar.gz"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf 'unsupported host architecture for SeaweedFS generated sources: %s\n' "$(uname -m)" >&2
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
curl -fsSL \
|
||||||
|
-o "${tmpdir}/${archive}" \
|
||||||
|
"https://github.com/seaweedfs/seaweedfs/releases/download/${pkgver}/${archive}"
|
||||||
|
tar -xzf "${tmpdir}/${archive}" -C "${tmpdir}" weed
|
||||||
|
|
||||||
for config in "${configs[@]}"; do
|
for config in "${configs[@]}"; do
|
||||||
"${repo_root}/bin/weed" scaffold -config "${config}" 2>/dev/null \
|
"${tmpdir}/weed" scaffold -config "${config}" 2>/dev/null \
|
||||||
> "${package_dir}/example-${config}.toml"
|
> "${package_dir}/example-${config}.toml"
|
||||||
done
|
done
|
||||||
|
|
||||||
"${repo_root}/bin/weed" autocomplete bash 2>/dev/null \
|
"${tmpdir}/weed" autocomplete bash 2>/dev/null \
|
||||||
| sed -E 's#complete -C "?[^"]*/weed"? weed#complete -C /usr/bin/weed weed#' \
|
| sed -E 's#complete -C "?[^"]*/weed"? weed#complete -C /usr/bin/weed weed#' \
|
||||||
> "${package_dir}/weed.bash-completion"
|
> "${package_dir}/weed.bash-completion"
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
provider=github
|
||||||
|
repo=seaweedfs/seaweedfs
|
||||||
|
version_prefix=none
|
||||||
Executable
+144
@@ -0,0 +1,144 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||||
|
# shellcheck source=scripts/apk/package-lib.sh
|
||||||
|
source "${repo_root}/scripts/apk/package-lib.sh"
|
||||||
|
|
||||||
|
mode="${APK_UPDATE_CHECK_MODE:-warn}"
|
||||||
|
if [[ "${mode}" != "warn" && "${mode}" != "fail" ]]; then
|
||||||
|
printf 'APK_UPDATE_CHECK_MODE must be warn or fail\n' >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
github_latest_release() {
|
||||||
|
local repo="$1"
|
||||||
|
local api_url="https://api.github.com/repos/${repo}/releases/latest"
|
||||||
|
local response
|
||||||
|
|
||||||
|
response="$(curl -fsSL \
|
||||||
|
-H 'Accept: application/vnd.github+json' \
|
||||||
|
-H 'X-GitHub-Api-Version: 2022-11-28' \
|
||||||
|
"${api_url}" 2>/dev/null)" || return 1
|
||||||
|
|
||||||
|
printf '%s\n' "${response}" \
|
||||||
|
| sed -n 's/^[[:space:]]*"tag_name":[[:space:]]*"\([^"]*\)".*/\1/p' \
|
||||||
|
| head -n 1
|
||||||
|
}
|
||||||
|
|
||||||
|
apkbuild_value() {
|
||||||
|
local package_dir="$1"
|
||||||
|
local key="$2"
|
||||||
|
|
||||||
|
awk -F= -v key="${key}" '
|
||||||
|
$1 == key {
|
||||||
|
value = $2
|
||||||
|
gsub(/["'\'']/, "", value)
|
||||||
|
gsub(/^[ \t]+|[ \t]+$/, "", value)
|
||||||
|
print value
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
' "${package_dir}/APKBUILD"
|
||||||
|
}
|
||||||
|
|
||||||
|
load_update_metadata() {
|
||||||
|
local package_dir="$1"
|
||||||
|
local metadata="${package_dir}/update-check.conf"
|
||||||
|
|
||||||
|
provider=""
|
||||||
|
repo=""
|
||||||
|
version_prefix="v"
|
||||||
|
|
||||||
|
if [[ ! -f "${metadata}" ]]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "${metadata}"
|
||||||
|
|
||||||
|
if [[ "${provider}" != "github" || -z "${repo}" ]]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
normalize_version() {
|
||||||
|
local version="$1"
|
||||||
|
local prefix="$2"
|
||||||
|
|
||||||
|
case "${prefix}" in
|
||||||
|
none|"")
|
||||||
|
printf '%s\n' "${version}"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf '%s\n' "${version#"${prefix}"}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
version_is_newer() {
|
||||||
|
local latest="$1"
|
||||||
|
local current="$2"
|
||||||
|
local apk_result
|
||||||
|
local sorted
|
||||||
|
|
||||||
|
if [[ "${latest}" == "${current}" ]]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v apk >/dev/null 2>&1; then
|
||||||
|
apk_result="$(apk version -t "${latest}-r0" "${current}-r0" 2>/dev/null || true)"
|
||||||
|
[[ "${apk_result}" == ">" ]]
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if sort -V </dev/null >/dev/null 2>&1; then
|
||||||
|
sorted="$(printf '%s\n%s\n' "${current}" "${latest}" | sort -V | tail -n 1)"
|
||||||
|
[[ "${sorted}" == "${latest}" && "${latest}" != "${current}" ]]
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
printf '%-14s %-14s %-14s %-18s %s\n' "PACKAGE" "CURRENT" "LATEST" "STATUS" "UPSTREAM"
|
||||||
|
|
||||||
|
has_update=0
|
||||||
|
has_unknown=0
|
||||||
|
|
||||||
|
while IFS= read -r package_dir; do
|
||||||
|
apk_validate_package_dir "${package_dir}"
|
||||||
|
|
||||||
|
package_name="$(apk_package_name "${package_dir}")"
|
||||||
|
current_version="$(apkbuild_value "${package_dir}" "pkgver")"
|
||||||
|
status="unknown"
|
||||||
|
latest_version="-"
|
||||||
|
upstream_url="-"
|
||||||
|
|
||||||
|
if load_update_metadata "${package_dir}"; then
|
||||||
|
upstream_url="https://github.com/${repo}/releases"
|
||||||
|
if latest_tag="$(github_latest_release "${repo}")" && [[ -n "${latest_tag}" ]]; then
|
||||||
|
latest_version="$(normalize_version "${latest_tag}" "${version_prefix}")"
|
||||||
|
if version_is_newer "${latest_version}" "${current_version}"; then
|
||||||
|
status="update-available"
|
||||||
|
has_update=1
|
||||||
|
else
|
||||||
|
status="current"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
has_unknown=1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
has_unknown=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '%-14s %-14s %-14s %-18s %s\n' \
|
||||||
|
"${package_name}" \
|
||||||
|
"${current_version:-"-"}" \
|
||||||
|
"${latest_version}" \
|
||||||
|
"${status}" \
|
||||||
|
"${upstream_url}"
|
||||||
|
done < <(apk_package_dirs "${repo_root}")
|
||||||
|
|
||||||
|
if [[ "${mode}" == "fail" && ( "${has_update}" -ne 0 || "${has_unknown}" -ne 0 ) ]]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
@@ -4,6 +4,7 @@ set -euo pipefail
|
|||||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||||
|
|
||||||
cd "${repo_root}"
|
cd "${repo_root}"
|
||||||
|
mise run apk:outdated
|
||||||
mise run apk:lint
|
mise run apk:lint
|
||||||
mise run apk:build-all
|
mise run apk:build-all
|
||||||
mise run apk:packages
|
mise run apk:packages
|
||||||
|
|||||||
+37
-29
@@ -5,8 +5,8 @@ repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|||||||
alpine_version="${ALPINE_VERSION:-3.24}"
|
alpine_version="${ALPINE_VERSION:-3.24}"
|
||||||
platform="${ALPINE_BUILD_PLATFORM:-linux/amd64}"
|
platform="${ALPINE_BUILD_PLATFORM:-linux/amd64}"
|
||||||
arch="${ALPINE_ARCH:-x86_64}"
|
arch="${ALPINE_ARCH:-x86_64}"
|
||||||
packages="${TEST_SHELL_PACKAGES:-seaweedfs seaweedfs-doc bash-completion seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc greptimedb lavinmq lavinmq-doc lavinmq-openrc gitea gitea-doc gitea-openrc}"
|
packages="${TEST_SHELL_PACKAGES:-}"
|
||||||
shell="${TEST_SHELL:-/bin/bash}"
|
shell="${TEST_SHELL:-/bin/sh}"
|
||||||
timeout_seconds="${TEST_SHELL_TIMEOUT:-120}"
|
timeout_seconds="${TEST_SHELL_TIMEOUT:-120}"
|
||||||
|
|
||||||
case "${arch}" in
|
case "${arch}" in
|
||||||
@@ -24,9 +24,23 @@ if [[ ! -d "${repo_root}/packages/local/${arch}" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker_args=(--rm --platform "${platform}")
|
shopt -s nullglob
|
||||||
|
repo_keys=("${repo_root}/packages/local/${arch}"/*.rsa.pub)
|
||||||
|
repo_indexes=("${repo_root}/packages/local/${arch}"/APKINDEX.tar.gz)
|
||||||
|
shopt -u nullglob
|
||||||
|
|
||||||
|
if [[ "${#repo_keys[@]}" -eq 0 ]]; then
|
||||||
|
printf 'missing repository key: packages/local/%s/*.rsa.pub\n' "${arch}" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [[ "${#repo_indexes[@]}" -eq 0 ]]; then
|
||||||
|
printf 'missing repository index: packages/local/%s/APKINDEX.tar.gz\n' "${arch}" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker_args=(--rm -i --platform "${platform}")
|
||||||
if [[ -t 0 && -t 1 ]]; then
|
if [[ -t 0 && -t 1 ]]; then
|
||||||
docker_args+=(-it)
|
docker_args+=(-t)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker run "${docker_args[@]}" \
|
docker run "${docker_args[@]}" \
|
||||||
@@ -46,31 +60,25 @@ docker run "${docker_args[@]}" \
|
|||||||
printf "Refreshing apk indexes...\n"
|
printf "Refreshing apk indexes...\n"
|
||||||
timeout "${TEST_SHELL_TIMEOUT}" apk update
|
timeout "${TEST_SHELL_TIMEOUT}" apk update
|
||||||
|
|
||||||
printf "Installing test packages: %s\n" "${PACKAGE_LIST}"
|
if [ -n "${PACKAGE_LIST}" ]; then
|
||||||
timeout "${TEST_SHELL_TIMEOUT}" apk add ${PACKAGE_LIST}
|
printf "Installing requested test packages: %s\n" "${PACKAGE_LIST}"
|
||||||
|
timeout "${TEST_SHELL_TIMEOUT}" apk add ${PACKAGE_LIST}
|
||||||
|
fi
|
||||||
|
|
||||||
printf "\nInstalled default test packages:\n"
|
cat <<EOF
|
||||||
apk info -e seaweedfs seaweedfs-doc seaweedfs-bash-completion \
|
|
||||||
seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc \
|
Local APK repository is ready.
|
||||||
greptimedb lavinmq lavinmq-doc lavinmq-openrc \
|
Repository: /repo
|
||||||
gitea gitea-doc gitea-openrc \
|
Workspace: /work
|
||||||
| sort
|
|
||||||
if command -v weed >/dev/null 2>&1; then
|
Examples:
|
||||||
printf "\nSeaweedFS version:\n"
|
apk add seaweedfs seaweedfs-master-openrc
|
||||||
weed version
|
apk add greptimedb greptimedb-docs greptimedb-standalone-openrc
|
||||||
fi
|
apk add lavinmq lavinmq-openrc
|
||||||
if command -v greptime >/dev/null 2>&1; then
|
apk add gitea gitea-openrc
|
||||||
printf "\nGreptimeDB version:\n"
|
|
||||||
greptime --version
|
Entering ${TEST_SHELL}.
|
||||||
fi
|
|
||||||
if command -v lavinmq >/dev/null 2>&1; then
|
EOF
|
||||||
printf "\nLavinMQ version:\n"
|
|
||||||
lavinmq -v
|
|
||||||
fi
|
|
||||||
if command -v gitea >/dev/null 2>&1; then
|
|
||||||
printf "\nGitea version:\n"
|
|
||||||
gitea --version
|
|
||||||
fi
|
|
||||||
printf "\nEntering %s. Repository mounted read-only at /work.\n\n" "${TEST_SHELL}"
|
|
||||||
exec "${TEST_SHELL}"
|
exec "${TEST_SHELL}"
|
||||||
'
|
'
|
||||||
|
|||||||
Reference in New Issue
Block a user