ci(release): publish releases, Flatpak and AUR packages from ermite
GoReleaser publishes to git.bnema.dev from ermite CI and keeps its github.com defaults on the GitHub mirror, which still gets a copy of each release for the current updater (dumber#1). Flatpak and AUR jobs run on ermite only and read release assets from the forge; install.sh, the AUR PKGBUILDs and the docs point to git.bnema.dev.
12 files · +62 -54
M .github/workflows/aur.yml +9 -8
| @@ -14,7 +14,9 @@ jobs: | |||
| 14 | 14 | publish-aur-git: | |
| 15 | 15 | name: Publish dumber-browser-git to AUR | |
| 16 | 16 | runs-on: ubuntu-latest | |
| 17 | + | # AUR packages are published from ermite only (git.bnema.dev). | |
| 17 | 18 | if: > | |
| 19 | + | github.server_url != 'https://github.com' && | |
| 18 | 20 | github.event.workflow_run.name == 'CI' && | |
| 19 | 21 | github.event.workflow_run.conclusion == 'success' && | |
| 20 | 22 | github.event.workflow_run.head_branch == 'main' | |
| @@ -49,7 +51,7 @@ jobs: | |||
| 49 | 51 | 'pkgrel=1' \ | |
| 50 | 52 | 'pkgdesc="A minimal keyboard-driven browser for tiling WMs (git version)"' \ | |
| 51 | 53 | "arch=('x86_64')" \ | |
| 52 | - | 'url="https://github.com/bnema/dumber"' \ | |
| 54 | + | 'url="https://git.bnema.dev/dumber"' \ | |
| 53 | 55 | "license=('MIT')" \ | |
| 54 | 56 | "makedepends=('go>=1.27' 'git' 'brotli')" \ | |
| 55 | 57 | "depends=('gtk4' 'cef' 'webkitgtk-6.0')" \ | |
| @@ -72,7 +74,7 @@ jobs: | |||
| 72 | 74 | ')' \ | |
| 73 | 75 | "provides=('dumber-browser' 'dumber')" \ | |
| 74 | 76 | "conflicts=('dumber-browser' 'dumber-browser-bin')" \ | |
| 75 | - | 'source=("git+https://github.com/bnema/dumber.git")' \ | |
| 77 | + | 'source=("git+https://git.bnema.dev/dumber.git")' \ | |
| 76 | 78 | "sha256sums=('SKIP')" \ | |
| 77 | 79 | '' \ | |
| 78 | 80 | 'pkgver() {' \ | |
| @@ -116,6 +118,7 @@ jobs: | |||
| 116 | 118 | name: Publish dumber-browser-bin to AUR | |
| 117 | 119 | runs-on: ubuntu-latest | |
| 118 | 120 | if: > | |
| 121 | + | github.server_url != 'https://github.com' && | |
| 119 | 122 | github.event.workflow_run.name == 'Flatpak' && | |
| 120 | 123 | github.event.workflow_run.conclusion == 'success' | |
| 121 | 124 | concurrency: | |
| @@ -147,19 +150,17 @@ jobs: | |||
| 147 | 150 | - name: Verify release still exists | |
| 148 | 151 | run: | | |
| 149 | 152 | TAG="${{ steps.release.outputs.tag }}" | |
| 150 | - | if ! gh release view "$TAG" &>/dev/null; then | |
| 153 | + | if ! curl -fsS -o /dev/null "${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/releases/tags/${TAG}"; then | |
| 151 | 154 | echo "::error::Release $TAG no longer exists. Aborting AUR publish." | |
| 152 | 155 | exit 1 | |
| 153 | 156 | fi | |
| 154 | 157 | echo "Release $TAG verified, proceeding with AUR publish." | |
| 155 | - | env: | |
| 156 | - | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| 157 | 158 | ||
| 158 | 159 | - name: Download checksums | |
| 159 | 160 | id: checksum | |
| 160 | 161 | run: | | |
| 161 | 162 | TAG="${{ steps.release.outputs.tag }}" | |
| 162 | - | curl -sL "https://github.com/bnema/dumber/releases/download/${TAG}/checksums.txt" -o checksums.txt | |
| 163 | + | curl -fsSL "${GITHUB_SERVER_URL}/dumber/releases/download/${TAG}/checksums.txt" -o checksums.txt | |
| 163 | 164 | cat checksums.txt | |
| 164 | 165 | SHA256=$(grep 'dumber_linux_x86_64.tar.gz' checksums.txt | cut -d' ' -f1) | |
| 165 | 166 | if [ -z "$SHA256" ]; then | |
| @@ -184,7 +185,7 @@ jobs: | |||
| 184 | 185 | 'pkgrel=1' \ | |
| 185 | 186 | 'pkgdesc="A minimal keyboard-driven browser for tiling WMs"' \ | |
| 186 | 187 | "arch=('x86_64')" \ | |
| 187 | - | 'url="https://github.com/bnema/dumber"' \ | |
| 188 | + | 'url="https://git.bnema.dev/dumber"' \ | |
| 188 | 189 | "license=('MIT')" \ | |
| 189 | 190 | "depends=('gtk4' 'cef' 'webkitgtk-6.0')" \ | |
| 190 | 191 | 'optdepends=(' \ | |
| @@ -206,7 +207,7 @@ jobs: | |||
| 206 | 207 | ')' \ | |
| 207 | 208 | "provides=('dumber-browser' 'dumber')" \ | |
| 208 | 209 | "conflicts=('dumber-browser' 'dumber-browser-git')" \ | |
| 209 | - | 'source=("${pkgname}-${pkgver}.tar.gz::https://github.com/bnema/dumber/releases/download/v${pkgver}/dumber_linux_x86_64.tar.gz")' \ | |
| 210 | + | 'source=("${pkgname}-${pkgver}.tar.gz::https://git.bnema.dev/dumber/releases/download/v${pkgver}/dumber_linux_x86_64.tar.gz")' \ | |
| 210 | 211 | "sha256sums=('${SHA256}')" \ | |
| 211 | 212 | '' \ | |
| 212 | 213 | 'package() {' \ | |
| @@ -14,7 +14,9 @@ jobs: | |||||
| 14 | publish-aur-git: | 14 | publish-aur-git: | ||
| 15 | name: Publish dumber-browser-git to AUR | 15 | name: Publish dumber-browser-git to AUR | ||
| 16 | runs-on: ubuntu-latest | 16 | runs-on: ubuntu-latest | ||
| 17 | + | # AUR packages are published from ermite only (git.bnema.dev). | |||
| 17 | if: > | 18 | if: > | ||
| 19 | + | github.server_url != 'https://github.com' && | |||
| 18 | github.event.workflow_run.name == 'CI' && | 20 | github.event.workflow_run.name == 'CI' && | ||
| 19 | github.event.workflow_run.conclusion == 'success' && | 21 | github.event.workflow_run.conclusion == 'success' && | ||
| 20 | github.event.workflow_run.head_branch == 'main' | 22 | github.event.workflow_run.head_branch == 'main' | ||
| @@ -49,7 +51,7 @@ jobs: | |||||
| 49 | 'pkgrel=1' \ | 51 | 'pkgrel=1' \ | ||
| 50 | 'pkgdesc="A minimal keyboard-driven browser for tiling WMs (git version)"' \ | 52 | 'pkgdesc="A minimal keyboard-driven browser for tiling WMs (git version)"' \ | ||
| 51 | "arch=('x86_64')" \ | 53 | "arch=('x86_64')" \ | ||
| 52 | - | 'url="https://github.com/bnema/dumber"' \ | 54 | + | 'url="https://git.bnema.dev/dumber"' \ |
| 53 | "license=('MIT')" \ | 55 | "license=('MIT')" \ | ||
| 54 | "makedepends=('go>=1.27' 'git' 'brotli')" \ | 56 | "makedepends=('go>=1.27' 'git' 'brotli')" \ | ||
| 55 | "depends=('gtk4' 'cef' 'webkitgtk-6.0')" \ | 57 | "depends=('gtk4' 'cef' 'webkitgtk-6.0')" \ | ||
| @@ -72,7 +74,7 @@ jobs: | |||||
| 72 | ')' \ | 74 | ')' \ | ||
| 73 | "provides=('dumber-browser' 'dumber')" \ | 75 | "provides=('dumber-browser' 'dumber')" \ | ||
| 74 | "conflicts=('dumber-browser' 'dumber-browser-bin')" \ | 76 | "conflicts=('dumber-browser' 'dumber-browser-bin')" \ | ||
| 75 | - | 'source=("git+https://github.com/bnema/dumber.git")' \ | 77 | + | 'source=("git+https://git.bnema.dev/dumber.git")' \ |
| 76 | "sha256sums=('SKIP')" \ | 78 | "sha256sums=('SKIP')" \ | ||
| 77 | '' \ | 79 | '' \ | ||
| 78 | 'pkgver() {' \ | 80 | 'pkgver() {' \ | ||
| @@ -116,6 +118,7 @@ jobs: | |||||
| 116 | name: Publish dumber-browser-bin to AUR | 118 | name: Publish dumber-browser-bin to AUR | ||
| 117 | runs-on: ubuntu-latest | 119 | runs-on: ubuntu-latest | ||
| 118 | if: > | 120 | if: > | ||
| 121 | + | github.server_url != 'https://github.com' && | |||
| 119 | github.event.workflow_run.name == 'Flatpak' && | 122 | github.event.workflow_run.name == 'Flatpak' && | ||
| 120 | github.event.workflow_run.conclusion == 'success' | 123 | github.event.workflow_run.conclusion == 'success' | ||
| 121 | concurrency: | 124 | concurrency: | ||
| @@ -147,19 +150,17 @@ jobs: | |||||
| 147 | - name: Verify release still exists | 150 | - name: Verify release still exists | ||
| 148 | run: | | 151 | run: | | ||
| 149 | TAG="${{ steps.release.outputs.tag }}" | 152 | TAG="${{ steps.release.outputs.tag }}" | ||
| 150 | - | if ! gh release view "$TAG" &>/dev/null; then | 153 | + | if ! curl -fsS -o /dev/null "${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/releases/tags/${TAG}"; then |
| 151 | echo "::error::Release $TAG no longer exists. Aborting AUR publish." | 154 | echo "::error::Release $TAG no longer exists. Aborting AUR publish." | ||
| 152 | exit 1 | 155 | exit 1 | ||
| 153 | fi | 156 | fi | ||
| 154 | echo "Release $TAG verified, proceeding with AUR publish." | 157 | echo "Release $TAG verified, proceeding with AUR publish." | ||
| 155 | - | env: | |||
| 156 | - | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |||
| 157 | 158 | ||||
| 158 | - name: Download checksums | 159 | - name: Download checksums | ||
| 159 | id: checksum | 160 | id: checksum | ||
| 160 | run: | | 161 | run: | | ||
| 161 | TAG="${{ steps.release.outputs.tag }}" | 162 | TAG="${{ steps.release.outputs.tag }}" | ||
| 162 | - | curl -sL "https://github.com/bnema/dumber/releases/download/${TAG}/checksums.txt" -o checksums.txt | 163 | + | curl -fsSL "${GITHUB_SERVER_URL}/dumber/releases/download/${TAG}/checksums.txt" -o checksums.txt |
| 163 | cat checksums.txt | 164 | cat checksums.txt | ||
| 164 | SHA256=$(grep 'dumber_linux_x86_64.tar.gz' checksums.txt | cut -d' ' -f1) | 165 | SHA256=$(grep 'dumber_linux_x86_64.tar.gz' checksums.txt | cut -d' ' -f1) | ||
| 165 | if [ -z "$SHA256" ]; then | 166 | if [ -z "$SHA256" ]; then | ||
| @@ -184,7 +185,7 @@ jobs: | |||||
| 184 | 'pkgrel=1' \ | 185 | 'pkgrel=1' \ | ||
| 185 | 'pkgdesc="A minimal keyboard-driven browser for tiling WMs"' \ | 186 | 'pkgdesc="A minimal keyboard-driven browser for tiling WMs"' \ | ||
| 186 | "arch=('x86_64')" \ | 187 | "arch=('x86_64')" \ | ||
| 187 | - | 'url="https://github.com/bnema/dumber"' \ | 188 | + | 'url="https://git.bnema.dev/dumber"' \ |
| 188 | "license=('MIT')" \ | 189 | "license=('MIT')" \ | ||
| 189 | "depends=('gtk4' 'cef' 'webkitgtk-6.0')" \ | 190 | "depends=('gtk4' 'cef' 'webkitgtk-6.0')" \ | ||
| 190 | 'optdepends=(' \ | 191 | 'optdepends=(' \ | ||
| @@ -206,7 +207,7 @@ jobs: | |||||
| 206 | ')' \ | 207 | ')' \ | ||
| 207 | "provides=('dumber-browser' 'dumber')" \ | 208 | "provides=('dumber-browser' 'dumber')" \ | ||
| 208 | "conflicts=('dumber-browser' 'dumber-browser-git')" \ | 209 | "conflicts=('dumber-browser' 'dumber-browser-git')" \ | ||
| 209 | - | 'source=("${pkgname}-${pkgver}.tar.gz::https://github.com/bnema/dumber/releases/download/v${pkgver}/dumber_linux_x86_64.tar.gz")' \ | 210 | + | 'source=("${pkgname}-${pkgver}.tar.gz::https://git.bnema.dev/dumber/releases/download/v${pkgver}/dumber_linux_x86_64.tar.gz")' \ |
| 210 | "sha256sums=('${SHA256}')" \ | 211 | "sha256sums=('${SHA256}')" \ | ||
| 211 | '' \ | 212 | '' \ | ||
| 212 | 'package() {' \ | 213 | 'package() {' \ | ||
M .github/workflows/flatpak.yml +8 -3
| @@ -14,8 +14,11 @@ permissions: | |||
| 14 | 14 | contents: write | |
| 15 | 15 | ||
| 16 | 16 | jobs: | |
| 17 | + | # ermite (git.bnema.dev) builds the Flatpak; the GitHub mirror only gets a | |
| 18 | + | # copy of the release for older updaters (see release.yml). | |
| 17 | 19 | flatpak: | |
| 18 | 20 | name: Build Flatpak | |
| 21 | + | if: github.server_url != 'https://github.com' | |
| 19 | 22 | runs-on: ubuntu-latest | |
| 20 | 23 | container: | |
| 21 | 24 | image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-48 | |
| @@ -37,7 +40,8 @@ jobs: | |||
| 37 | 40 | - name: Wait for release assets | |
| 38 | 41 | run: | | |
| 39 | 42 | VERSION="${{ steps.version.outputs.version }}" | |
| 40 | - | URL="https://github.com/bnema/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz" | |
| 43 | + | # The job reaches the forge at GITHUB_SERVER_URL (the runner relay). | |
| 44 | + | URL="${GITHUB_SERVER_URL}/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz" | |
| 41 | 45 | echo "Waiting for release asset: $URL" | |
| 42 | 46 | for i in $(seq 1 30); do | |
| 43 | 47 | if curl -sL --fail -o /dev/null "$URL"; then | |
| @@ -54,7 +58,8 @@ jobs: | |||
| 54 | 58 | id: sha256 | |
| 55 | 59 | run: | | |
| 56 | 60 | VERSION="${{ steps.version.outputs.version }}" | |
| 57 | - | URL="https://github.com/bnema/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz" | |
| 61 | + | # The job reaches the forge at GITHUB_SERVER_URL (the runner relay). | |
| 62 | + | URL="${GITHUB_SERVER_URL}/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz" | |
| 58 | 63 | SHA256=$(curl -sL "$URL" | sha256sum | cut -d' ' -f1) | |
| 59 | 64 | echo "sha256=$SHA256" >> $GITHUB_OUTPUT | |
| 60 | 65 | echo "SHA256: $SHA256" | |
| @@ -91,7 +96,7 @@ jobs: | |||
| 91 | 96 | - install -Dm644 dev.bnema.Dumber.metainfo.xml /app/share/metainfo/dev.bnema.Dumber.metainfo.xml | |
| 92 | 97 | sources: | |
| 93 | 98 | - type: archive | |
| 94 | - | url: https://github.com/bnema/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz | |
| 99 | + | url: ${GITHUB_SERVER_URL}/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz | |
| 95 | 100 | sha256: ${SHA256} | |
| 96 | 101 | - type: file | |
| 97 | 102 | path: flatpak/dev.bnema.Dumber.desktop | |
| @@ -14,8 +14,11 @@ permissions: | |||||
| 14 | contents: write | 14 | contents: write | ||
| 15 | 15 | ||||
| 16 | jobs: | 16 | jobs: | ||
| 17 | + | # ermite (git.bnema.dev) builds the Flatpak; the GitHub mirror only gets a | |||
| 18 | + | # copy of the release for older updaters (see release.yml). | |||
| 17 | flatpak: | 19 | flatpak: | ||
| 18 | name: Build Flatpak | 20 | name: Build Flatpak | ||
| 21 | + | if: github.server_url != 'https://github.com' | |||
| 19 | runs-on: ubuntu-latest | 22 | runs-on: ubuntu-latest | ||
| 20 | container: | 23 | container: | ||
| 21 | image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-48 | 24 | image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-48 | ||
| @@ -37,7 +40,8 @@ jobs: | |||||
| 37 | - name: Wait for release assets | 40 | - name: Wait for release assets | ||
| 38 | run: | | 41 | run: | | ||
| 39 | VERSION="${{ steps.version.outputs.version }}" | 42 | VERSION="${{ steps.version.outputs.version }}" | ||
| 40 | - | URL="https://github.com/bnema/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz" | 43 | + | # The job reaches the forge at GITHUB_SERVER_URL (the runner relay). |
| 44 | + | URL="${GITHUB_SERVER_URL}/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz" | |||
| 41 | echo "Waiting for release asset: $URL" | 45 | echo "Waiting for release asset: $URL" | ||
| 42 | for i in $(seq 1 30); do | 46 | for i in $(seq 1 30); do | ||
| 43 | if curl -sL --fail -o /dev/null "$URL"; then | 47 | if curl -sL --fail -o /dev/null "$URL"; then | ||
| @@ -54,7 +58,8 @@ jobs: | |||||
| 54 | id: sha256 | 58 | id: sha256 | ||
| 55 | run: | | 59 | run: | | ||
| 56 | VERSION="${{ steps.version.outputs.version }}" | 60 | VERSION="${{ steps.version.outputs.version }}" | ||
| 57 | - | URL="https://github.com/bnema/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz" | 61 | + | # The job reaches the forge at GITHUB_SERVER_URL (the runner relay). |
| 62 | + | URL="${GITHUB_SERVER_URL}/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz" | |||
| 58 | SHA256=$(curl -sL "$URL" | sha256sum | cut -d' ' -f1) | 63 | SHA256=$(curl -sL "$URL" | sha256sum | cut -d' ' -f1) | ||
| 59 | echo "sha256=$SHA256" >> $GITHUB_OUTPUT | 64 | echo "sha256=$SHA256" >> $GITHUB_OUTPUT | ||
| 60 | echo "SHA256: $SHA256" | 65 | echo "SHA256: $SHA256" | ||
| @@ -91,7 +96,7 @@ jobs: | |||||
| 91 | - install -Dm644 dev.bnema.Dumber.metainfo.xml /app/share/metainfo/dev.bnema.Dumber.metainfo.xml | 96 | - install -Dm644 dev.bnema.Dumber.metainfo.xml /app/share/metainfo/dev.bnema.Dumber.metainfo.xml | ||
| 92 | sources: | 97 | sources: | ||
| 93 | - type: archive | 98 | - type: archive | ||
| 94 | - | url: https://github.com/bnema/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz | 99 | + | url: ${GITHUB_SERVER_URL}/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz |
| 95 | sha256: ${SHA256} | 100 | sha256: ${SHA256} | ||
| 96 | - type: file | 101 | - type: file | ||
| 97 | path: flatpak/dev.bnema.Dumber.desktop | 102 | path: flatpak/dev.bnema.Dumber.desktop | ||
M .github/workflows/release.yml +5 -2
| @@ -1,4 +1,3 @@ | |||
| 1 | - | ||
| 2 | 1 | name: Release | |
| 3 | 2 | ||
| 4 | 3 | on: | |
| @@ -10,6 +9,10 @@ permissions: | |||
| 10 | 9 | contents: write | |
| 11 | 10 | ||
| 12 | 11 | jobs: | |
| 12 | + | # ermite (git.bnema.dev) publishes the release, the Flatpak and the AUR | |
| 13 | + | # packages. The GitHub mirror also runs this job for each mirrored tag: its | |
| 14 | + | # copy of the release keeps older builds updating, since their updater only | |
| 15 | + | # reads GitHub. Flatpak and AUR run on ermite only. | |
| 13 | 16 | release: | |
| 14 | 17 | runs-on: ubuntu-latest | |
| 15 | 18 | steps: | |
| @@ -19,7 +22,7 @@ jobs: | |||
| 19 | 22 | ||
| 20 | 23 | - uses: actions/setup-go@v7 | |
| 21 | 24 | with: | |
| 22 | - | go-version: stable | |
| 25 | + | go-version-file: go.mod | |
| 23 | 26 | ||
| 24 | 27 | - uses: actions/setup-node@v7 | |
| 25 | 28 | with: | |
| @@ -1,4 +1,3 @@ | |||||
| 1 | - | ||||
| 2 | name: Release | 1 | name: Release | ||
| 3 | 2 | ||||
| 4 | on: | 3 | on: | ||
| @@ -10,6 +9,10 @@ permissions: | |||||
| 10 | contents: write | 9 | contents: write | ||
| 11 | 10 | ||||
| 12 | jobs: | 11 | jobs: | ||
| 12 | + | # ermite (git.bnema.dev) publishes the release, the Flatpak and the AUR | |||
| 13 | + | # packages. The GitHub mirror also runs this job for each mirrored tag: its | |||
| 14 | + | # copy of the release keeps older builds updating, since their updater only | |||
| 15 | + | # reads GitHub. Flatpak and AUR run on ermite only. | |||
| 13 | release: | 16 | release: | ||
| 14 | runs-on: ubuntu-latest | 17 | runs-on: ubuntu-latest | ||
| 15 | steps: | 18 | steps: | ||
| @@ -19,7 +22,7 @@ jobs: | |||||
| 19 | 22 | ||||
| 20 | - uses: actions/setup-go@v7 | 23 | - uses: actions/setup-go@v7 | ||
| 21 | with: | 24 | with: | ||
| 22 | - | go-version: stable | 25 | + | go-version-file: go.mod |
| 23 | 26 | ||||
| 24 | - uses: actions/setup-node@v7 | 27 | - uses: actions/setup-node@v7 | ||
| 25 | with: | 28 | with: | ||
M .goreleaser.yaml +12 -6
| @@ -2,6 +2,16 @@ | |||
| 2 | 2 | # https://goreleaser.com | |
| 3 | 3 | version: 2 | |
| 4 | 4 | ||
| 5 | + | # Releases are published on ermite. In CI the runner sets GITHUB_API_URL and | |
| 6 | + | # GITHUB_SERVER_URL to an address the job can reach; the public URLs are the | |
| 7 | + | # fallback for a local run. The release workflow also runs on the GitHub | |
| 8 | + | # mirror, so older builds, whose updater only reads GitHub, still update: | |
| 9 | + | # there GoReleaser keeps its github.com defaults. | |
| 10 | + | github_urls: | |
| 11 | + | api: '{{ if eq (index .Env "GITHUB_SERVER_URL") "https://github.com" }}https://api.github.com{{ else }}{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}{{ end }}/' | |
| 12 | + | upload: '{{ if eq (index .Env "GITHUB_SERVER_URL") "https://github.com" }}https://uploads.github.com{{ else }}{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/uploads{{ end }}/' | |
| 13 | + | download: '{{ or (index .Env "GITHUB_SERVER_URL") "https://git.bnema.dev" }}/' | |
| 14 | + | ||
| 5 | 15 | before: | |
| 6 | 16 | hooks: | |
| 7 | 17 | # Build and verify systemviews assets before building binaries | |
| @@ -61,7 +71,7 @@ snapshot: | |||
| 61 | 71 | ||
| 62 | 72 | changelog: | |
| 63 | 73 | sort: asc | |
| 64 | - | use: github | |
| 74 | + | use: git | |
| 65 | 75 | filters: | |
| 66 | 76 | exclude: | |
| 67 | 77 | - '^docs:' | |
| @@ -116,7 +126,7 @@ release: | |||
| 116 | 126 | ### Linux (x86_64/amd64) | |
| 117 | 127 | ```bash | |
| 118 | 128 | # Download latest release | |
| 119 | - | wget https://github.com/bnema/dumber/releases/latest/download/dumber_linux_x86_64.tar.gz | |
| 129 | + | wget https://git.bnema.dev/dumber/releases/latest/download/dumber_linux_x86_64.tar.gz | |
| 120 | 130 | ||
| 121 | 131 | # Extract and install to ~/.local/bin (enables auto-updates) | |
| 122 | 132 | tar -xzf dumber_linux_x86_64.tar.gz | |
| @@ -158,10 +168,6 @@ release: | |||
| 158 | 168 | sudo apt install gstreamer1.0-vaapi va-driver-all | |
| 159 | 169 | ``` | |
| 160 | 170 | ||
| 161 | - | --- | |
| 162 | - | ||
| 163 | - | **Full Changelog**: https://github.com/bnema/dumber/compare/{{.PreviousTag}}...{{.Tag}} | |
| 164 | - | ||
| 165 | 171 | # Auto-detect prerelease from version (v1.0.0-rc1, v1.0.0-alpha, etc.) | |
| 166 | 172 | prerelease: auto | |
| 167 | 173 | ||
| @@ -2,6 +2,16 @@ | |||||
| 2 | # https://goreleaser.com | 2 | # https://goreleaser.com | ||
| 3 | version: 2 | 3 | version: 2 | ||
| 4 | 4 | ||||
| 5 | + | # Releases are published on ermite. In CI the runner sets GITHUB_API_URL and | |||
| 6 | + | # GITHUB_SERVER_URL to an address the job can reach; the public URLs are the | |||
| 7 | + | # fallback for a local run. The release workflow also runs on the GitHub | |||
| 8 | + | # mirror, so older builds, whose updater only reads GitHub, still update: | |||
| 9 | + | # there GoReleaser keeps its github.com defaults. | |||
| 10 | + | github_urls: | |||
| 11 | + | api: '{{ if eq (index .Env "GITHUB_SERVER_URL") "https://github.com" }}https://api.github.com{{ else }}{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}{{ end }}/' | |||
| 12 | + | upload: '{{ if eq (index .Env "GITHUB_SERVER_URL") "https://github.com" }}https://uploads.github.com{{ else }}{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/uploads{{ end }}/' | |||
| 13 | + | download: '{{ or (index .Env "GITHUB_SERVER_URL") "https://git.bnema.dev" }}/' | |||
| 14 | + | ||||
| 5 | before: | 15 | before: | ||
| 6 | hooks: | 16 | hooks: | ||
| 7 | # Build and verify systemviews assets before building binaries | 17 | # Build and verify systemviews assets before building binaries | ||
| @@ -61,7 +71,7 @@ snapshot: | |||||
| 61 | 71 | ||||
| 62 | changelog: | 72 | changelog: | ||
| 63 | sort: asc | 73 | sort: asc | ||
| 64 | - | use: github | 74 | + | use: git |
| 65 | filters: | 75 | filters: | ||
| 66 | exclude: | 76 | exclude: | ||
| 67 | - '^docs:' | 77 | - '^docs:' | ||
| @@ -116,7 +126,7 @@ release: | |||||
| 116 | ### Linux (x86_64/amd64) | 126 | ### Linux (x86_64/amd64) | ||
| 117 | ```bash | 127 | ```bash | ||
| 118 | # Download latest release | 128 | # Download latest release | ||
| 119 | - | wget https://github.com/bnema/dumber/releases/latest/download/dumber_linux_x86_64.tar.gz | 129 | + | wget https://git.bnema.dev/dumber/releases/latest/download/dumber_linux_x86_64.tar.gz |
| 120 | 130 | ||||
| 121 | # Extract and install to ~/.local/bin (enables auto-updates) | 131 | # Extract and install to ~/.local/bin (enables auto-updates) | ||
| 122 | tar -xzf dumber_linux_x86_64.tar.gz | 132 | tar -xzf dumber_linux_x86_64.tar.gz | ||
| @@ -158,10 +168,6 @@ release: | |||||
| 158 | sudo apt install gstreamer1.0-vaapi va-driver-all | 168 | sudo apt install gstreamer1.0-vaapi va-driver-all | ||
| 159 | ``` | 169 | ``` | ||
| 160 | 170 | ||||
| 161 | - | --- | |||
| 162 | - | ||||
| 163 | - | **Full Changelog**: https://github.com/bnema/dumber/compare/{{.PreviousTag}}...{{.Tag}} | |||
| 164 | - | ||||
| 165 | # Auto-detect prerelease from version (v1.0.0-rc1, v1.0.0-alpha, etc.) | 171 | # Auto-detect prerelease from version (v1.0.0-rc1, v1.0.0-alpha, etc.) | ||
| 166 | prerelease: auto | 172 | prerelease: auto | ||
| 167 | 173 | ||||
M README.md +5 -5
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | 3 | <p align="center"> | |
| 4 | 4 | <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License: MIT"></a> | |
| 5 | - | <a href="https://github.com/bnema/dumber/releases"><img src="https://img.shields.io/badge/platform-Linux%20Wayland%20only-blue?style=flat-square" alt="Platform: Linux Wayland"></a> | |
| 5 | + | <a href="https://git.bnema.dev/dumber/releases"><img src="https://img.shields.io/badge/platform-Linux%20Wayland%20only-blue?style=flat-square" alt="Platform: Linux Wayland"></a> | |
| 6 | 6 | <a href="https://github.com/bnema/dumber/commits/main"><img src="https://badgen.net/github/last-commit/bnema/dumber/main?icon=github" alt="Last commit"></a> | |
| 7 | 7 | <a href="https://github.com/bnema/dumber/stargazers"><img src="https://badgen.net/github/stars/bnema/dumber?icon=github" alt="GitHub stars"></a> | |
| 8 | 8 | </p> | |
| @@ -67,7 +67,7 @@ The browser chrome stays out of the way by default. Open the omnibox when you wa | |||
| 67 | 67 | ### Install script | |
| 68 | 68 | ||
| 69 | 69 | ```bash | |
| 70 | - | curl -fsSL https://raw.githubusercontent.com/bnema/dumber/v0.33.0/install.sh | DUMBER_VERSION=v0.33.0 bash | |
| 70 | + | curl -fsSL https://git.bnema.dev/dumber/raw/v0.33.0/install.sh | DUMBER_VERSION=v0.33.0 bash | |
| 71 | 71 | dumber browse | |
| 72 | 72 | ``` | |
| 73 | 73 | ||
| @@ -81,7 +81,7 @@ yay -S dumber-browser-git # Build from source | |||
| 81 | 81 | ### Flatpak | |
| 82 | 82 | ||
| 83 | 83 | ```bash | |
| 84 | - | wget https://github.com/bnema/dumber/releases/latest/download/dumber.flatpak | |
| 84 | + | wget https://git.bnema.dev/dumber/releases/latest/download/dumber.flatpak | |
| 85 | 85 | flatpak install --user dumber.flatpak | |
| 86 | 86 | flatpak run dev.bnema.Dumber browse | |
| 87 | 87 | ``` | |
| @@ -216,7 +216,7 @@ Set `ENV=dev` to isolate the development process under `.dev/dumber/`. Dumber se | |||
| 216 | 216 | Systemviews assets are generated with `go tool templ` and Go's `js/wasm` toolchain; no root Node toolchain is required. | |
| 217 | 217 | ||
| 218 | 218 | ```bash | |
| 219 | - | git clone https://github.com/bnema/dumber | |
| 219 | + | git clone https://git.bnema.dev/dumber | |
| 220 | 220 | cd dumber | |
| 221 | 221 | make build | |
| 222 | 222 | ./dist/dumber browse | |
| @@ -249,7 +249,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details. | |||
| 249 | 249 | ## Community | |
| 250 | 250 | ||
| 251 | 251 | - [Report bugs](https://github.com/bnema/dumber/issues) | |
| 252 | - | - [Releases](https://github.com/bnema/dumber/releases): notes for each version | |
| 252 | + | - [Releases](https://git.bnema.dev/dumber/releases): notes for each version | |
| 253 | 253 | ||
| 254 | 254 | ## License | |
| 255 | 255 | ||
| @@ -2,7 +2,7 @@ | |||||
| 2 | 2 | ||||
| 3 | <p align="center"> | 3 | <p align="center"> | ||
| 4 | <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License: MIT"></a> | 4 | <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License: MIT"></a> | ||
| 5 | - | <a href="https://github.com/bnema/dumber/releases"><img src="https://img.shields.io/badge/platform-Linux%20Wayland%20only-blue?style=flat-square" alt="Platform: Linux Wayland"></a> | 5 | + | <a href="https://git.bnema.dev/dumber/releases"><img src="https://img.shields.io/badge/platform-Linux%20Wayland%20only-blue?style=flat-square" alt="Platform: Linux Wayland"></a> |
| 6 | <a href="https://github.com/bnema/dumber/commits/main"><img src="https://badgen.net/github/last-commit/bnema/dumber/main?icon=github" alt="Last commit"></a> | 6 | <a href="https://github.com/bnema/dumber/commits/main"><img src="https://badgen.net/github/last-commit/bnema/dumber/main?icon=github" alt="Last commit"></a> | ||
| 7 | <a href="https://github.com/bnema/dumber/stargazers"><img src="https://badgen.net/github/stars/bnema/dumber?icon=github" alt="GitHub stars"></a> | 7 | <a href="https://github.com/bnema/dumber/stargazers"><img src="https://badgen.net/github/stars/bnema/dumber?icon=github" alt="GitHub stars"></a> | ||
| 8 | </p> | 8 | </p> | ||
| @@ -67,7 +67,7 @@ The browser chrome stays out of the way by default. Open the omnibox when you wa | |||||
| 67 | ### Install script | 67 | ### Install script | ||
| 68 | 68 | ||||
| 69 | ```bash | 69 | ```bash | ||
| 70 | - | curl -fsSL https://raw.githubusercontent.com/bnema/dumber/v0.33.0/install.sh | DUMBER_VERSION=v0.33.0 bash | 70 | + | curl -fsSL https://git.bnema.dev/dumber/raw/v0.33.0/install.sh | DUMBER_VERSION=v0.33.0 bash |
| 71 | dumber browse | 71 | dumber browse | ||
| 72 | ``` | 72 | ``` | ||
| 73 | 73 | ||||
| @@ -81,7 +81,7 @@ yay -S dumber-browser-git # Build from source | |||||
| 81 | ### Flatpak | 81 | ### Flatpak | ||
| 82 | 82 | ||||
| 83 | ```bash | 83 | ```bash | ||
| 84 | - | wget https://github.com/bnema/dumber/releases/latest/download/dumber.flatpak | 84 | + | wget https://git.bnema.dev/dumber/releases/latest/download/dumber.flatpak |
| 85 | flatpak install --user dumber.flatpak | 85 | flatpak install --user dumber.flatpak | ||
| 86 | flatpak run dev.bnema.Dumber browse | 86 | flatpak run dev.bnema.Dumber browse | ||
| 87 | ``` | 87 | ``` | ||
| @@ -216,7 +216,7 @@ Set `ENV=dev` to isolate the development process under `.dev/dumber/`. Dumber se | |||||
| 216 | Systemviews assets are generated with `go tool templ` and Go's `js/wasm` toolchain; no root Node toolchain is required. | 216 | Systemviews assets are generated with `go tool templ` and Go's `js/wasm` toolchain; no root Node toolchain is required. | ||
| 217 | 217 | ||||
| 218 | ```bash | 218 | ```bash | ||
| 219 | - | git clone https://github.com/bnema/dumber | 219 | + | git clone https://git.bnema.dev/dumber |
| 220 | cd dumber | 220 | cd dumber | ||
| 221 | make build | 221 | make build | ||
| 222 | ./dist/dumber browse | 222 | ./dist/dumber browse | ||
| @@ -249,7 +249,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details. | |||||
| 249 | ## Community | 249 | ## Community | ||
| 250 | 250 | ||||
| 251 | - [Report bugs](https://github.com/bnema/dumber/issues) | 251 | - [Report bugs](https://github.com/bnema/dumber/issues) | ||
| 252 | - | - [Releases](https://github.com/bnema/dumber/releases): notes for each version | 252 | + | - [Releases](https://git.bnema.dev/dumber/releases): notes for each version |
| 253 | 253 | ||||
| 254 | ## License | 254 | ## License | ||
| 255 | 255 | ||||
M aur/dumber-browser-bin/.SRCINFO +1 -1
| @@ -2,7 +2,7 @@ pkgbase = dumber-browser-bin | |||
| 2 | 2 | pkgdesc = A minimal keyboard-driven browser for tiling WMs | |
| 3 | 3 | pkgver = 0.23.2 | |
| 4 | 4 | pkgrel = 3 | |
| 5 | - | url = https://github.com/bnema/dumber | |
| 5 | + | url = https://git.bnema.dev/dumber | |
| 6 | 6 | arch = x86_64 | |
| 7 | 7 | license = MIT | |
| 8 | 8 | depends = gtk4 | |
| @@ -2,7 +2,7 @@ pkgbase = dumber-browser-bin | |||||
| 2 | pkgdesc = A minimal keyboard-driven browser for tiling WMs | 2 | pkgdesc = A minimal keyboard-driven browser for tiling WMs | ||
| 3 | pkgver = 0.23.2 | 3 | pkgver = 0.23.2 | ||
| 4 | pkgrel = 3 | 4 | pkgrel = 3 | ||
| 5 | - | url = https://github.com/bnema/dumber | 5 | + | url = https://git.bnema.dev/dumber |
| 6 | arch = x86_64 | 6 | arch = x86_64 | ||
| 7 | license = MIT | 7 | license = MIT | ||
| 8 | depends = gtk4 | 8 | depends = gtk4 | ||
M aur/dumber-browser-bin/PKGBUILD +1 -1
| @@ -4,7 +4,7 @@ pkgver=0.23.2 | |||
| 4 | 4 | pkgrel=3 | |
| 5 | 5 | pkgdesc="A minimal keyboard-driven browser for tiling WMs" | |
| 6 | 6 | arch=('x86_64') | |
| 7 | - | url="https://github.com/bnema/dumber" | |
| 7 | + | url="https://git.bnema.dev/dumber" | |
| 8 | 8 | license=('MIT') | |
| 9 | 9 | depends=('gtk4' 'cef' 'webkitgtk-6.0' 'libwebp') | |
| 10 | 10 | optdepends=( | |
| @@ -4,7 +4,7 @@ pkgver=0.23.2 | |||||
| 4 | pkgrel=3 | 4 | pkgrel=3 | ||
| 5 | pkgdesc="A minimal keyboard-driven browser for tiling WMs" | 5 | pkgdesc="A minimal keyboard-driven browser for tiling WMs" | ||
| 6 | arch=('x86_64') | 6 | arch=('x86_64') | ||
| 7 | - | url="https://github.com/bnema/dumber" | 7 | + | url="https://git.bnema.dev/dumber" |
| 8 | license=('MIT') | 8 | license=('MIT') | ||
| 9 | depends=('gtk4' 'cef' 'webkitgtk-6.0' 'libwebp') | 9 | depends=('gtk4' 'cef' 'webkitgtk-6.0' 'libwebp') | ||
| 10 | optdepends=( | 10 | optdepends=( | ||
M aur/dumber-browser-git/.SRCINFO +2 -2
| @@ -2,7 +2,7 @@ pkgbase = dumber-browser-git | |||
| 2 | 2 | pkgdesc = A minimal keyboard-driven browser for tiling WMs (git version) | |
| 3 | 3 | pkgver = 0.28.0.r367.g6066b2a7 | |
| 4 | 4 | pkgrel = 2 | |
| 5 | - | url = https://github.com/bnema/dumber | |
| 5 | + | url = https://git.bnema.dev/dumber | |
| 6 | 6 | arch = x86_64 | |
| 7 | 7 | license = MIT | |
| 8 | 8 | makedepends = go>=1.27 | |
| @@ -31,7 +31,7 @@ pkgbase = dumber-browser-git | |||
| 31 | 31 | provides = dumber | |
| 32 | 32 | conflicts = dumber-browser | |
| 33 | 33 | conflicts = dumber-browser-bin | |
| 34 | - | source = git+https://github.com/bnema/dumber.git | |
| 34 | + | source = git+https://git.bnema.dev/dumber.git | |
| 35 | 35 | sha256sums = SKIP | |
| 36 | 36 | ||
| 37 | 37 | pkgname = dumber-browser-git | |
| @@ -2,7 +2,7 @@ pkgbase = dumber-browser-git | |||||
| 2 | pkgdesc = A minimal keyboard-driven browser for tiling WMs (git version) | 2 | pkgdesc = A minimal keyboard-driven browser for tiling WMs (git version) | ||
| 3 | pkgver = 0.28.0.r367.g6066b2a7 | 3 | pkgver = 0.28.0.r367.g6066b2a7 | ||
| 4 | pkgrel = 2 | 4 | pkgrel = 2 | ||
| 5 | - | url = https://github.com/bnema/dumber | 5 | + | url = https://git.bnema.dev/dumber |
| 6 | arch = x86_64 | 6 | arch = x86_64 | ||
| 7 | license = MIT | 7 | license = MIT | ||
| 8 | makedepends = go>=1.27 | 8 | makedepends = go>=1.27 | ||
| @@ -31,7 +31,7 @@ pkgbase = dumber-browser-git | |||||
| 31 | provides = dumber | 31 | provides = dumber | ||
| 32 | conflicts = dumber-browser | 32 | conflicts = dumber-browser | ||
| 33 | conflicts = dumber-browser-bin | 33 | conflicts = dumber-browser-bin | ||
| 34 | - | source = git+https://github.com/bnema/dumber.git | 34 | + | source = git+https://git.bnema.dev/dumber.git |
| 35 | sha256sums = SKIP | 35 | sha256sums = SKIP | ||
| 36 | 36 | ||||
| 37 | pkgname = dumber-browser-git | 37 | pkgname = dumber-browser-git | ||
M aur/dumber-browser-git/PKGBUILD +2 -2
| @@ -4,7 +4,7 @@ pkgver=0.32.0.r5.gcbc3a47f | |||
| 4 | 4 | pkgrel=1 | |
| 5 | 5 | pkgdesc="A minimal keyboard-driven browser for tiling WMs (git version)" | |
| 6 | 6 | arch=('x86_64') | |
| 7 | - | url="https://github.com/bnema/dumber" | |
| 7 | + | url="https://git.bnema.dev/dumber" | |
| 8 | 8 | license=('MIT') | |
| 9 | 9 | makedepends=('go>=1.27' 'git' 'brotli') | |
| 10 | 10 | depends=('gtk4' 'cef' 'webkitgtk-6.0' 'libwebp') | |
| @@ -27,7 +27,7 @@ optdepends=( | |||
| 27 | 27 | ) | |
| 28 | 28 | provides=('dumber-browser' 'dumber') | |
| 29 | 29 | conflicts=('dumber-browser' 'dumber-browser-bin') | |
| 30 | - | source=("git+https://github.com/bnema/dumber.git") | |
| 30 | + | source=("git+https://git.bnema.dev/dumber.git") | |
| 31 | 31 | sha256sums=('SKIP') | |
| 32 | 32 | ||
| 33 | 33 | pkgver() { | |
| @@ -4,7 +4,7 @@ pkgver=0.32.0.r5.gcbc3a47f | |||||
| 4 | pkgrel=1 | 4 | pkgrel=1 | ||
| 5 | pkgdesc="A minimal keyboard-driven browser for tiling WMs (git version)" | 5 | pkgdesc="A minimal keyboard-driven browser for tiling WMs (git version)" | ||
| 6 | arch=('x86_64') | 6 | arch=('x86_64') | ||
| 7 | - | url="https://github.com/bnema/dumber" | 7 | + | url="https://git.bnema.dev/dumber" |
| 8 | license=('MIT') | 8 | license=('MIT') | ||
| 9 | makedepends=('go>=1.27' 'git' 'brotli') | 9 | makedepends=('go>=1.27' 'git' 'brotli') | ||
| 10 | depends=('gtk4' 'cef' 'webkitgtk-6.0' 'libwebp') | 10 | depends=('gtk4' 'cef' 'webkitgtk-6.0' 'libwebp') | ||
| @@ -27,7 +27,7 @@ optdepends=( | |||||
| 27 | ) | 27 | ) | ||
| 28 | provides=('dumber-browser' 'dumber') | 28 | provides=('dumber-browser' 'dumber') | ||
| 29 | conflicts=('dumber-browser' 'dumber-browser-bin') | 29 | conflicts=('dumber-browser' 'dumber-browser-bin') | ||
| 30 | - | source=("git+https://github.com/bnema/dumber.git") | 30 | + | source=("git+https://git.bnema.dev/dumber.git") |
| 31 | sha256sums=('SKIP') | 31 | sha256sums=('SKIP') | ||
| 32 | 32 | ||||
| 33 | pkgver() { | 33 | pkgver() { | ||
M docs/installation.md +5 -5
| @@ -3,7 +3,7 @@ | |||
| 3 | 3 | ## Quick Install (Linux x86_64) | |
| 4 | 4 | ||
| 5 | 5 | ```bash | |
| 6 | - | curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | bash | |
| 6 | + | curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | bash | |
| 7 | 7 | ``` | |
| 8 | 8 | ||
| 9 | 9 | Installs to `~/.local/bin` if available, otherwise `/usr/local/bin` (requires sudo). | |
| @@ -13,19 +13,19 @@ Installs to `~/.local/bin` if available, otherwise `/usr/local/bin` (requires su | |||
| 13 | 13 | Install a specific version: | |
| 14 | 14 | ||
| 15 | 15 | ```bash | |
| 16 | - | curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_VERSION=v0.26.2 bash | |
| 16 | + | curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_VERSION=v0.26.2 bash | |
| 17 | 17 | ``` | |
| 18 | 18 | ||
| 19 | 19 | Install the latest prerelease: | |
| 20 | 20 | ||
| 21 | 21 | ```bash | |
| 22 | - | curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_PRERELEASE=1 bash | |
| 22 | + | curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_PRERELEASE=1 bash | |
| 23 | 23 | ``` | |
| 24 | 24 | ||
| 25 | 25 | Combine both to install a specific prerelease: | |
| 26 | 26 | ||
| 27 | 27 | ```bash | |
| 28 | - | curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_VERSION=v0.27.0-rc.1 DUMBER_PRERELEASE=1 bash | |
| 28 | + | curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_VERSION=v0.27.0-rc.1 DUMBER_PRERELEASE=1 bash | |
| 29 | 29 | ``` | |
| 30 | 30 | ||
| 31 | 31 | ## Flatpak | |
| @@ -41,7 +41,7 @@ flatpak install dumber.flatpak | |||
| 41 | 41 | ## From Source | |
| 42 | 42 | ||
| 43 | 43 | ```bash | |
| 44 | - | git clone https://github.com/bnema/dumber | |
| 44 | + | git clone https://git.bnema.dev/dumber | |
| 45 | 45 | cd dumber | |
| 46 | 46 | make build | |
| 47 | 47 | ./dist/dumber browse | |
| @@ -3,7 +3,7 @@ | |||||
| 3 | ## Quick Install (Linux x86_64) | 3 | ## Quick Install (Linux x86_64) | ||
| 4 | 4 | ||||
| 5 | ```bash | 5 | ```bash | ||
| 6 | - | curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | bash | 6 | + | curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | bash |
| 7 | ``` | 7 | ``` | ||
| 8 | 8 | ||||
| 9 | Installs to `~/.local/bin` if available, otherwise `/usr/local/bin` (requires sudo). | 9 | Installs to `~/.local/bin` if available, otherwise `/usr/local/bin` (requires sudo). | ||
| @@ -13,19 +13,19 @@ Installs to `~/.local/bin` if available, otherwise `/usr/local/bin` (requires su | |||||
| 13 | Install a specific version: | 13 | Install a specific version: | ||
| 14 | 14 | ||||
| 15 | ```bash | 15 | ```bash | ||
| 16 | - | curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_VERSION=v0.26.2 bash | 16 | + | curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_VERSION=v0.26.2 bash |
| 17 | ``` | 17 | ``` | ||
| 18 | 18 | ||||
| 19 | Install the latest prerelease: | 19 | Install the latest prerelease: | ||
| 20 | 20 | ||||
| 21 | ```bash | 21 | ```bash | ||
| 22 | - | curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_PRERELEASE=1 bash | 22 | + | curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_PRERELEASE=1 bash |
| 23 | ``` | 23 | ``` | ||
| 24 | 24 | ||||
| 25 | Combine both to install a specific prerelease: | 25 | Combine both to install a specific prerelease: | ||
| 26 | 26 | ||||
| 27 | ```bash | 27 | ```bash | ||
| 28 | - | curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_VERSION=v0.27.0-rc.1 DUMBER_PRERELEASE=1 bash | 28 | + | curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_VERSION=v0.27.0-rc.1 DUMBER_PRERELEASE=1 bash |
| 29 | ``` | 29 | ``` | ||
| 30 | 30 | ||||
| 31 | ## Flatpak | 31 | ## Flatpak | ||
| @@ -41,7 +41,7 @@ flatpak install dumber.flatpak | |||||
| 41 | ## From Source | 41 | ## From Source | ||
| 42 | 42 | ||||
| 43 | ```bash | 43 | ```bash | ||
| 44 | - | git clone https://github.com/bnema/dumber | 44 | + | git clone https://git.bnema.dev/dumber |
| 45 | cd dumber | 45 | cd dumber | ||
| 46 | make build | 46 | make build | ||
| 47 | ./dist/dumber browse | 47 | ./dist/dumber browse | ||
M flatpak/dev.bnema.Dumber.metainfo.xml +2 -2
| @@ -26,9 +26,9 @@ | |||
| 26 | 26 | </ul> | |
| 27 | 27 | </description> | |
| 28 | 28 | <launchable type="desktop-id">dev.bnema.Dumber.desktop</launchable> | |
| 29 | - | <url type="homepage">https://github.com/bnema/dumber</url> | |
| 29 | + | <url type="homepage">https://git.bnema.dev/dumber</url> | |
| 30 | 30 | <url type="bugtracker">https://github.com/bnema/dumber/issues</url> | |
| 31 | - | <url type="vcs-browser">https://github.com/bnema/dumber</url> | |
| 31 | + | <url type="vcs-browser">https://git.bnema.dev/dumber</url> | |
| 32 | 32 | <developer id="dev.bnema"> | |
| 33 | 33 | <name>bnema</name> | |
| 34 | 34 | </developer> | |
| @@ -26,9 +26,9 @@ | |||||
| 26 | </ul> | 26 | </ul> | ||
| 27 | </description> | 27 | </description> | ||
| 28 | <launchable type="desktop-id">dev.bnema.Dumber.desktop</launchable> | 28 | <launchable type="desktop-id">dev.bnema.Dumber.desktop</launchable> | ||
| 29 | - | <url type="homepage">https://github.com/bnema/dumber</url> | 29 | + | <url type="homepage">https://git.bnema.dev/dumber</url> |
| 30 | <url type="bugtracker">https://github.com/bnema/dumber/issues</url> | 30 | <url type="bugtracker">https://github.com/bnema/dumber/issues</url> | ||
| 31 | - | <url type="vcs-browser">https://github.com/bnema/dumber</url> | 31 | + | <url type="vcs-browser">https://git.bnema.dev/dumber</url> |
| 32 | <developer id="dev.bnema"> | 32 | <developer id="dev.bnema"> | ||
| 33 | <name>bnema</name> | 33 | <name>bnema</name> | ||
| 34 | </developer> | 34 | </developer> | ||
M install.sh +10 -17
| @@ -2,10 +2,11 @@ | |||
| 2 | 2 | set -e | |
| 3 | 3 | ||
| 4 | 4 | # Dumber installer script | |
| 5 | - | # Usage: curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | sh | |
| 6 | - | # Usage with pre-release: curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_PRERELEASE=1 sh | |
| 5 | + | # Usage: curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | sh | |
| 6 | + | # Usage with pre-release: curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_PRERELEASE=1 sh | |
| 7 | 7 | ||
| 8 | 8 | REPO="bnema/dumber" | |
| 9 | + | FORGE="https://git.bnema.dev" | |
| 9 | 10 | VERSION="${DUMBER_VERSION:-latest}" | |
| 10 | 11 | ||
| 11 | 12 | # Prefer ~/.local/bin if it exists and is in PATH, otherwise /usr/local/bin | |
| @@ -42,9 +43,9 @@ TARBALL="dumber_linux_x86_64.tar.gz" | |||
| 42 | 43 | # Determine version to download | |
| 43 | 44 | if [ "$VERSION" = "latest" ] && [ -n "$DUMBER_PRERELEASE" ]; then | |
| 44 | 45 | echo "Finding latest pre-release..." | |
| 45 | - | RELEASE_DATA=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases?per_page=100" 2>/dev/null || echo "") | |
| 46 | + | RELEASE_DATA=$(curl -fsSL "${FORGE}/-/github/api/repos/${REPO}/releases?per_page=100" 2>/dev/null || echo "") | |
| 46 | 47 | if [ -z "$RELEASE_DATA" ]; then | |
| 47 | - | echo "Error: Failed to fetch release information from GitHub API" | |
| 48 | + | echo "Error: Failed to fetch release information from ${FORGE}" | |
| 48 | 49 | exit 1 | |
| 49 | 50 | fi | |
| 50 | 51 | # Prefer jq for reliable JSON parsing of RELEASE_DATA into VERSION. | |
| @@ -77,23 +78,15 @@ if [ "$VERSION" = "latest" ] && [ -n "$DUMBER_PRERELEASE" ]; then | |||
| 77 | 78 | echo "Using pre-release version: ${VERSION}" | |
| 78 | 79 | elif [ "$VERSION" = "latest" ]; then | |
| 79 | 80 | echo "Using latest stable release" | |
| 80 | - | RELEASE_DATA=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" 2>/dev/null || echo "") | |
| 81 | + | RELEASE_DATA=$(curl -fsSL "${FORGE}/-/github/api/repos/${REPO}/releases/latest" 2>/dev/null || echo "") | |
| 81 | 82 | if [ -z "$RELEASE_DATA" ]; then | |
| 82 | - | echo "Error: Failed to fetch latest release information from GitHub API" | |
| 83 | + | echo "Error: Failed to fetch latest release information from ${FORGE}" | |
| 83 | 84 | exit 1 | |
| 84 | 85 | fi | |
| 85 | 86 | if command -v jq >/dev/null 2>&1; then | |
| 86 | 87 | VERSION=$(echo "$RELEASE_DATA" | jq -r '.tag_name') | |
| 87 | 88 | else | |
| 88 | - | VERSION=$(echo "$RELEASE_DATA" | awk ' | |
| 89 | - | /"tag_name"[[:space:]]*:/ { | |
| 90 | - | tag = $0 | |
| 91 | - | sub(/.*"tag_name"[[:space:]]*:[[:space:]]*"/, "", tag) | |
| 92 | - | sub(/".*/, "", tag) | |
| 93 | - | print tag | |
| 94 | - | exit | |
| 95 | - | } | |
| 96 | - | ') | |
| 89 | + | VERSION=$(echo "$RELEASE_DATA" | sed -n 's/.*"tag_name"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' | head -n 1) | |
| 97 | 90 | fi | |
| 98 | 91 | if [ -z "$VERSION" ]; then | |
| 99 | 92 | echo "Error: Could not determine latest stable version" | |
| @@ -104,14 +97,14 @@ else | |||
| 104 | 97 | echo "Using version: ${VERSION}" | |
| 105 | 98 | fi | |
| 106 | 99 | ||
| 107 | - | DOWNLOAD_URL="https://github.com/${REPO}/releases/download/${VERSION}/${TARBALL}" | |
| 100 | + | DOWNLOAD_URL="${FORGE}/dumber/releases/download/${VERSION}/${TARBALL}" | |
| 108 | 101 | ||
| 109 | 102 | # Create temporary directory | |
| 110 | 103 | TMP_DIR=$(mktemp -d) | |
| 111 | 104 | trap 'rm -rf "$TMP_DIR"' EXIT | |
| 112 | 105 | ||
| 113 | 106 | # Download checksums file | |
| 114 | - | CHECKSUMS_URL="https://github.com/${REPO}/releases/download/${VERSION}/checksums.txt" | |
| 107 | + | CHECKSUMS_URL="${FORGE}/dumber/releases/download/${VERSION}/checksums.txt" | |
| 115 | 108 | echo "Downloading checksums..." | |
| 116 | 109 | if ! curl -fsSL "$CHECKSUMS_URL" -o "$TMP_DIR/checksums.txt"; then | |
| 117 | 110 | echo "Error: Failed to download checksums file" | |
| @@ -2,10 +2,11 @@ | |||||
| 2 | set -e | 2 | set -e | ||
| 3 | 3 | ||||
| 4 | # Dumber installer script | 4 | # Dumber installer script | ||
| 5 | - | # Usage: curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | sh | 5 | + | # Usage: curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | sh |
| 6 | - | # Usage with pre-release: curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_PRERELEASE=1 sh | 6 | + | # Usage with pre-release: curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_PRERELEASE=1 sh |
| 7 | 7 | ||||
| 8 | REPO="bnema/dumber" | 8 | REPO="bnema/dumber" | ||
| 9 | + | FORGE="https://git.bnema.dev" | |||
| 9 | VERSION="${DUMBER_VERSION:-latest}" | 10 | VERSION="${DUMBER_VERSION:-latest}" | ||
| 10 | 11 | ||||
| 11 | # Prefer ~/.local/bin if it exists and is in PATH, otherwise /usr/local/bin | 12 | # Prefer ~/.local/bin if it exists and is in PATH, otherwise /usr/local/bin | ||
| @@ -42,9 +43,9 @@ TARBALL="dumber_linux_x86_64.tar.gz" | |||||
| 42 | # Determine version to download | 43 | # Determine version to download | ||
| 43 | if [ "$VERSION" = "latest" ] && [ -n "$DUMBER_PRERELEASE" ]; then | 44 | if [ "$VERSION" = "latest" ] && [ -n "$DUMBER_PRERELEASE" ]; then | ||
| 44 | echo "Finding latest pre-release..." | 45 | echo "Finding latest pre-release..." | ||
| 45 | - | RELEASE_DATA=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases?per_page=100" 2>/dev/null || echo "") | 46 | + | RELEASE_DATA=$(curl -fsSL "${FORGE}/-/github/api/repos/${REPO}/releases?per_page=100" 2>/dev/null || echo "") |
| 46 | if [ -z "$RELEASE_DATA" ]; then | 47 | if [ -z "$RELEASE_DATA" ]; then | ||
| 47 | - | echo "Error: Failed to fetch release information from GitHub API" | 48 | + | echo "Error: Failed to fetch release information from ${FORGE}" |
| 48 | exit 1 | 49 | exit 1 | ||
| 49 | fi | 50 | fi | ||
| 50 | # Prefer jq for reliable JSON parsing of RELEASE_DATA into VERSION. | 51 | # Prefer jq for reliable JSON parsing of RELEASE_DATA into VERSION. | ||
| @@ -77,23 +78,15 @@ if [ "$VERSION" = "latest" ] && [ -n "$DUMBER_PRERELEASE" ]; then | |||||
| 77 | echo "Using pre-release version: ${VERSION}" | 78 | echo "Using pre-release version: ${VERSION}" | ||
| 78 | elif [ "$VERSION" = "latest" ]; then | 79 | elif [ "$VERSION" = "latest" ]; then | ||
| 79 | echo "Using latest stable release" | 80 | echo "Using latest stable release" | ||
| 80 | - | RELEASE_DATA=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" 2>/dev/null || echo "") | 81 | + | RELEASE_DATA=$(curl -fsSL "${FORGE}/-/github/api/repos/${REPO}/releases/latest" 2>/dev/null || echo "") |
| 81 | if [ -z "$RELEASE_DATA" ]; then | 82 | if [ -z "$RELEASE_DATA" ]; then | ||
| 82 | - | echo "Error: Failed to fetch latest release information from GitHub API" | 83 | + | echo "Error: Failed to fetch latest release information from ${FORGE}" |
| 83 | exit 1 | 84 | exit 1 | ||
| 84 | fi | 85 | fi | ||
| 85 | if command -v jq >/dev/null 2>&1; then | 86 | if command -v jq >/dev/null 2>&1; then | ||
| 86 | VERSION=$(echo "$RELEASE_DATA" | jq -r '.tag_name') | 87 | VERSION=$(echo "$RELEASE_DATA" | jq -r '.tag_name') | ||
| 87 | else | 88 | else | ||
| 88 | - | VERSION=$(echo "$RELEASE_DATA" | awk ' | 89 | + | VERSION=$(echo "$RELEASE_DATA" | sed -n 's/.*"tag_name"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' | head -n 1) |
| 89 | - | /"tag_name"[[:space:]]*:/ { | |||
| 90 | - | tag = $0 | |||
| 91 | - | sub(/.*"tag_name"[[:space:]]*:[[:space:]]*"/, "", tag) | |||
| 92 | - | sub(/".*/, "", tag) | |||
| 93 | - | print tag | |||
| 94 | - | exit | |||
| 95 | - | } | |||
| 96 | - | ') | |||
| 97 | fi | 90 | fi | ||
| 98 | if [ -z "$VERSION" ]; then | 91 | if [ -z "$VERSION" ]; then | ||
| 99 | echo "Error: Could not determine latest stable version" | 92 | echo "Error: Could not determine latest stable version" | ||
| @@ -104,14 +97,14 @@ else | |||||
| 104 | echo "Using version: ${VERSION}" | 97 | echo "Using version: ${VERSION}" | ||
| 105 | fi | 98 | fi | ||
| 106 | 99 | ||||
| 107 | - | DOWNLOAD_URL="https://github.com/${REPO}/releases/download/${VERSION}/${TARBALL}" | 100 | + | DOWNLOAD_URL="${FORGE}/dumber/releases/download/${VERSION}/${TARBALL}" |
| 108 | 101 | ||||
| 109 | # Create temporary directory | 102 | # Create temporary directory | ||
| 110 | TMP_DIR=$(mktemp -d) | 103 | TMP_DIR=$(mktemp -d) | ||
| 111 | trap 'rm -rf "$TMP_DIR"' EXIT | 104 | trap 'rm -rf "$TMP_DIR"' EXIT | ||
| 112 | 105 | ||||
| 113 | # Download checksums file | 106 | # Download checksums file | ||
| 114 | - | CHECKSUMS_URL="https://github.com/${REPO}/releases/download/${VERSION}/checksums.txt" | 107 | + | CHECKSUMS_URL="${FORGE}/dumber/releases/download/${VERSION}/checksums.txt" |
| 115 | echo "Downloading checksums..." | 108 | echo "Downloading checksums..." | ||
| 116 | if ! curl -fsSL "$CHECKSUMS_URL" -o "$TMP_DIR/checksums.txt"; then | 109 | if ! curl -fsSL "$CHECKSUMS_URL" -o "$TMP_DIR/checksums.txt"; then | ||
| 117 | echo "Error: Failed to download checksums file" | 110 | echo "Error: Failed to download checksums file" | ||