Merge 8345e76c4726a85985a2d128c0ce04eb3157c313 into c9e9163d8e10ed27f6d17474eb94538be54e665b
10 files · +57 -35
M .github/actions/setup-gordon/action.yml +2 -2
| @@ -53,7 +53,7 @@ runs: | |||
| 53 | 53 | ||
| 54 | 54 | # Resolve 'latest' to an actual tag via redirect URL | |
| 55 | 55 | if [ "${version}" = "latest" ]; then | |
| 56 | - | redirect_url="$(curl -fsSL -o /dev/null -w '%{redirect_url}' "https://github.com/bnema/gordon/releases/latest")" | |
| 56 | + | redirect_url="$(curl -fsSL -o /dev/null -w '%{url_effective}' "https://git.bnema.dev/gordon/releases/latest")" | |
| 57 | 57 | version="${redirect_url##*/}" | |
| 58 | 58 | if [ -z "${version}" ]; then | |
| 59 | 59 | echo "Failed to resolve latest Gordon version" >&2 | |
| @@ -66,7 +66,7 @@ runs: | |||
| 66 | 66 | fi | |
| 67 | 67 | ||
| 68 | 68 | archive="gordon_${os}_${arch}.tar.gz" | |
| 69 | - | base_url="https://github.com/bnema/gordon/releases/download/${version}" | |
| 69 | + | base_url="https://git.bnema.dev/gordon/releases/download/${version}" | |
| 70 | 70 | url="${base_url}/${archive}" | |
| 71 | 71 | checksums_url="${base_url}/checksums.txt" | |
| 72 | 72 | work_dir="$(mktemp -d)" | |
| @@ -53,7 +53,7 @@ runs: | |||||
| 53 | 53 | ||||
| 54 | # Resolve 'latest' to an actual tag via redirect URL | 54 | # Resolve 'latest' to an actual tag via redirect URL | ||
| 55 | if [ "${version}" = "latest" ]; then | 55 | if [ "${version}" = "latest" ]; then | ||
| 56 | - | redirect_url="$(curl -fsSL -o /dev/null -w '%{redirect_url}' "https://github.com/bnema/gordon/releases/latest")" | 56 | + | redirect_url="$(curl -fsSL -o /dev/null -w '%{url_effective}' "https://git.bnema.dev/gordon/releases/latest")" |
| 57 | version="${redirect_url##*/}" | 57 | version="${redirect_url##*/}" | ||
| 58 | if [ -z "${version}" ]; then | 58 | if [ -z "${version}" ]; then | ||
| 59 | echo "Failed to resolve latest Gordon version" >&2 | 59 | echo "Failed to resolve latest Gordon version" >&2 | ||
| @@ -66,7 +66,7 @@ runs: | |||||
| 66 | fi | 66 | fi | ||
| 67 | 67 | ||||
| 68 | archive="gordon_${os}_${arch}.tar.gz" | 68 | archive="gordon_${os}_${arch}.tar.gz" | ||
| 69 | - | base_url="https://github.com/bnema/gordon/releases/download/${version}" | 69 | + | base_url="https://git.bnema.dev/gordon/releases/download/${version}" |
| 70 | url="${base_url}/${archive}" | 70 | url="${base_url}/${archive}" | ||
| 71 | checksums_url="${base_url}/checksums.txt" | 71 | checksums_url="${base_url}/checksums.txt" | ||
| 72 | work_dir="$(mktemp -d)" | 72 | work_dir="$(mktemp -d)" | ||
M .github/workflows/release.yml +4 -1
| @@ -11,6 +11,9 @@ permissions: | |||
| 11 | 11 | jobs: | |
| 12 | 12 | release: | |
| 13 | 13 | name: Release | |
| 14 | + | # Releases are published by ermite (git.bnema.dev); the GitHub mirror | |
| 15 | + | # receives the tags but must not publish a second release. | |
| 16 | + | if: github.server_url != 'https://github.com' | |
| 14 | 17 | runs-on: ubuntu-latest | |
| 15 | 18 | steps: | |
| 16 | 19 | - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 | |
| @@ -20,7 +23,7 @@ jobs: | |||
| 20 | 23 | ||
| 21 | 24 | - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5 | |
| 22 | 25 | with: | |
| 23 | - | go-version: "1.27.x" | |
| 26 | + | go-version-file: go.mod | |
| 24 | 27 | ||
| 25 | 28 | - name: Run GoReleaser | |
| 26 | 29 | uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6 | |
| @@ -11,6 +11,9 @@ permissions: | |||||
| 11 | jobs: | 11 | jobs: | ||
| 12 | release: | 12 | release: | ||
| 13 | name: Release | 13 | name: Release | ||
| 14 | + | # Releases are published by ermite (git.bnema.dev); the GitHub mirror | |||
| 15 | + | # receives the tags but must not publish a second release. | |||
| 16 | + | if: github.server_url != 'https://github.com' | |||
| 14 | runs-on: ubuntu-latest | 17 | runs-on: ubuntu-latest | ||
| 15 | steps: | 18 | steps: | ||
| 16 | - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 | 19 | - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 | ||
| @@ -20,7 +23,7 @@ jobs: | |||||
| 20 | 23 | ||||
| 21 | - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5 | 24 | - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5 | ||
| 22 | with: | 25 | with: | ||
| 23 | - | go-version: "1.27.x" | 26 | + | go-version-file: go.mod |
| 24 | 27 | ||||
| 25 | - name: Run GoReleaser | 28 | - name: Run GoReleaser | ||
| 26 | uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6 | 29 | uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6 | ||
M .goreleaser.yaml +12 -0
| @@ -1,5 +1,13 @@ | |||
| 1 | 1 | version: 2 | |
| 2 | 2 | ||
| 3 | + | # Releases are published on ermite. In CI the runner sets GITHUB_API_URL and | |
| 4 | + | # GITHUB_SERVER_URL to an address the job can reach; the public URLs are the | |
| 5 | + | # fallback for a local run. | |
| 6 | + | github_urls: | |
| 7 | + | api: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/' | |
| 8 | + | upload: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/uploads/' | |
| 9 | + | download: '{{ or (index .Env "GITHUB_SERVER_URL") "https://git.bnema.dev" }}/' | |
| 10 | + | ||
| 3 | 11 | before: | |
| 4 | 12 | hooks: | |
| 5 | 13 | ||
| @@ -7,6 +15,10 @@ git: | |||
| 7 | 15 | prerelease_suffix: "-" | |
| 8 | 16 | ||
| 9 | 17 | release: | |
| 18 | + | github: | |
| 19 | + | owner: bnema | |
| 20 | + | name: gordon | |
| 21 | + | # Publish after checking it: ermite release edit gordon <tag> --publish | |
| 10 | 22 | draft: true | |
| 11 | 23 | prerelease: auto | |
| 12 | 24 | ||
| @@ -1,5 +1,13 @@ | |||||
| 1 | version: 2 | 1 | version: 2 | ||
| 2 | 2 | ||||
| 3 | + | # Releases are published on ermite. In CI the runner sets GITHUB_API_URL and | |||
| 4 | + | # GITHUB_SERVER_URL to an address the job can reach; the public URLs are the | |||
| 5 | + | # fallback for a local run. | |||
| 6 | + | github_urls: | |||
| 7 | + | api: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/' | |||
| 8 | + | upload: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/uploads/' | |||
| 9 | + | download: '{{ or (index .Env "GITHUB_SERVER_URL") "https://git.bnema.dev" }}/' | |||
| 10 | + | ||||
| 3 | before: | 11 | before: | ||
| 4 | hooks: | 12 | hooks: | ||
| 5 | 13 | ||||
| @@ -7,6 +15,10 @@ git: | |||||
| 7 | prerelease_suffix: "-" | 15 | prerelease_suffix: "-" | ||
| 8 | 16 | ||||
| 9 | release: | 17 | release: | ||
| 18 | + | github: | |||
| 19 | + | owner: bnema | |||
| 20 | + | name: gordon | |||
| 21 | + | # Publish after checking it: ermite release edit gordon <tag> --publish | |||
| 10 | draft: true | 22 | draft: true | ||
| 11 | prerelease: auto | 23 | prerelease: auto | ||
| 12 | 24 | ||||
M Makefile +3 -3
| @@ -152,10 +152,10 @@ dev-release: build ## Create dev GitHub release | |||
| 152 | 152 | @echo "Dev release created successfully!" | |
| 153 | 153 | @echo "" | |
| 154 | 154 | @echo "📦 Download URLs:" | |
| 155 | - | @echo " AMD64: wget https://github.com/bnema/gordon/releases/download/$(DEV_TAG)/gordon-linux-amd64" | |
| 156 | - | @echo " ARM64: wget https://github.com/bnema/gordon/releases/download/$(DEV_TAG)/gordon-linux-arm64" | |
| 155 | + | @echo " AMD64: wget https://git.bnema.dev/gordon/releases/download/$(DEV_TAG)/gordon-linux-amd64" | |
| 156 | + | @echo " ARM64: wget https://git.bnema.dev/gordon/releases/download/$(DEV_TAG)/gordon-linux-arm64" | |
| 157 | 157 | @echo "" | |
| 158 | - | @echo "🔗 Release page: https://github.com/bnema/gordon/releases/tag/$(DEV_TAG)" | |
| 158 | + | @echo "🔗 Release page: https://git.bnema.dev/gordon/releases/tag/$(DEV_TAG)" | |
| 159 | 159 | ||
| 160 | 160 | ##@ Cleanup | |
| 161 | 161 | ||
| @@ -152,10 +152,10 @@ dev-release: build ## Create dev GitHub release | |||||
| 152 | @echo "Dev release created successfully!" | 152 | @echo "Dev release created successfully!" | ||
| 153 | @echo "" | 153 | @echo "" | ||
| 154 | @echo "📦 Download URLs:" | 154 | @echo "📦 Download URLs:" | ||
| 155 | - | @echo " AMD64: wget https://github.com/bnema/gordon/releases/download/$(DEV_TAG)/gordon-linux-amd64" | 155 | + | @echo " AMD64: wget https://git.bnema.dev/gordon/releases/download/$(DEV_TAG)/gordon-linux-amd64" |
| 156 | - | @echo " ARM64: wget https://github.com/bnema/gordon/releases/download/$(DEV_TAG)/gordon-linux-arm64" | 156 | + | @echo " ARM64: wget https://git.bnema.dev/gordon/releases/download/$(DEV_TAG)/gordon-linux-arm64" |
| 157 | @echo "" | 157 | @echo "" | ||
| 158 | - | @echo "🔗 Release page: https://github.com/bnema/gordon/releases/tag/$(DEV_TAG)" | 158 | + | @echo "🔗 Release page: https://git.bnema.dev/gordon/releases/tag/$(DEV_TAG)" |
| 159 | 159 | ||||
| 160 | ##@ Cleanup | 160 | ##@ Cleanup | ||
| 161 | 161 | ||||
M docs/deployment/generic-ci.md +4 -4
| @@ -34,7 +34,7 @@ Add these secrets to your CI system: | |||
| 34 | 34 | ||
| 35 | 35 | ```bash | |
| 36 | 36 | # 1. Install Gordon binary | |
| 37 | - | curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 \ | |
| 37 | + | curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 \ | |
| 38 | 38 | -o /usr/local/bin/gordon | |
| 39 | 39 | chmod +x /usr/local/bin/gordon | |
| 40 | 40 | ||
| @@ -86,7 +86,7 @@ pipeline { | |||
| 86 | 86 | stage('Deploy') { | |
| 87 | 87 | steps { | |
| 88 | 88 | sh ''' | |
| 89 | - | curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 \ | |
| 89 | + | curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 \ | |
| 90 | 90 | -o /usr/local/bin/gordon | |
| 91 | 91 | chmod +x /usr/local/bin/gordon | |
| 92 | 92 | gordon images push --build --remote "$GORDON_REMOTE" | |
| @@ -113,7 +113,7 @@ jobs: | |||
| 113 | 113 | name: Install Gordon | |
| 114 | 114 | command: | | |
| 115 | 115 | apk add --no-cache curl | |
| 116 | - | curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 \ | |
| 116 | + | curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 \ | |
| 117 | 117 | -o /usr/local/bin/gordon | |
| 118 | 118 | chmod +x /usr/local/bin/gordon | |
| 119 | 119 | - run: | |
| @@ -150,7 +150,7 @@ steps: | |||
| 150 | 150 | from_secret: gordon_remote | |
| 151 | 151 | commands: | |
| 152 | 152 | - apk add --no-cache curl | |
| 153 | - | - curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | |
| 153 | + | - curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | |
| 154 | 154 | - chmod +x /usr/local/bin/gordon | |
| 155 | 155 | - gordon images push --build --remote "$GORDON_REMOTE" | |
| 156 | 156 | ||
| @@ -34,7 +34,7 @@ Add these secrets to your CI system: | |||||
| 34 | 34 | ||||
| 35 | ```bash | 35 | ```bash | ||
| 36 | # 1. Install Gordon binary | 36 | # 1. Install Gordon binary | ||
| 37 | - | curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 \ | 37 | + | curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 \ |
| 38 | -o /usr/local/bin/gordon | 38 | -o /usr/local/bin/gordon | ||
| 39 | chmod +x /usr/local/bin/gordon | 39 | chmod +x /usr/local/bin/gordon | ||
| 40 | 40 | ||||
| @@ -86,7 +86,7 @@ pipeline { | |||||
| 86 | stage('Deploy') { | 86 | stage('Deploy') { | ||
| 87 | steps { | 87 | steps { | ||
| 88 | sh ''' | 88 | sh ''' | ||
| 89 | - | curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 \ | 89 | + | curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 \ |
| 90 | -o /usr/local/bin/gordon | 90 | -o /usr/local/bin/gordon | ||
| 91 | chmod +x /usr/local/bin/gordon | 91 | chmod +x /usr/local/bin/gordon | ||
| 92 | gordon images push --build --remote "$GORDON_REMOTE" | 92 | gordon images push --build --remote "$GORDON_REMOTE" | ||
| @@ -113,7 +113,7 @@ jobs: | |||||
| 113 | name: Install Gordon | 113 | name: Install Gordon | ||
| 114 | command: | | 114 | command: | | ||
| 115 | apk add --no-cache curl | 115 | apk add --no-cache curl | ||
| 116 | - | curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 \ | 116 | + | curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 \ |
| 117 | -o /usr/local/bin/gordon | 117 | -o /usr/local/bin/gordon | ||
| 118 | chmod +x /usr/local/bin/gordon | 118 | chmod +x /usr/local/bin/gordon | ||
| 119 | - run: | 119 | - run: | ||
| @@ -150,7 +150,7 @@ steps: | |||||
| 150 | from_secret: gordon_remote | 150 | from_secret: gordon_remote | ||
| 151 | commands: | 151 | commands: | ||
| 152 | - apk add --no-cache curl | 152 | - apk add --no-cache curl | ||
| 153 | - | - curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | 153 | + | - curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon |
| 154 | - chmod +x /usr/local/bin/gordon | 154 | - chmod +x /usr/local/bin/gordon | ||
| 155 | - gordon images push --build --remote "$GORDON_REMOTE" | 155 | - gordon images push --build --remote "$GORDON_REMOTE" | ||
| 156 | 156 | ||||
M docs/deployment/gitlab-ci.md +5 -5
| @@ -42,7 +42,7 @@ deploy: | |||
| 42 | 42 | - docker:24-dind | |
| 43 | 43 | before_script: | |
| 44 | 44 | - apk add --no-cache curl | |
| 45 | - | - curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | |
| 45 | + | - curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | |
| 46 | 46 | - chmod +x /usr/local/bin/gordon | |
| 47 | 47 | script: | |
| 48 | 48 | - gordon images push --build | |
| @@ -70,7 +70,7 @@ deploy: | |||
| 70 | 70 | - docker:24-dind | |
| 71 | 71 | before_script: | |
| 72 | 72 | - apk add --no-cache curl | |
| 73 | - | - curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | |
| 73 | + | - curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | |
| 74 | 74 | - chmod +x /usr/local/bin/gordon | |
| 75 | 75 | script: | |
| 76 | 76 | - gordon images push --build | |
| @@ -93,7 +93,7 @@ deploy: | |||
| 93 | 93 | - docker:24-dind | |
| 94 | 94 | before_script: | |
| 95 | 95 | - apk add --no-cache curl | |
| 96 | - | - curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | |
| 96 | + | - curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | |
| 97 | 97 | - chmod +x /usr/local/bin/gordon | |
| 98 | 98 | script: | |
| 99 | 99 | - gordon images push --build | |
| @@ -114,7 +114,7 @@ deploy: | |||
| 114 | 114 | - docker:24-dind | |
| 115 | 115 | before_script: | |
| 116 | 116 | - apk add --no-cache curl | |
| 117 | - | - curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | |
| 117 | + | - curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | |
| 118 | 118 | - chmod +x /usr/local/bin/gordon | |
| 119 | 119 | script: | |
| 120 | 120 | - gordon images push --build | |
| @@ -134,7 +134,7 @@ deploy: | |||
| 134 | 134 | - docker:24-dind | |
| 135 | 135 | before_script: | |
| 136 | 136 | - apk add --no-cache curl | |
| 137 | - | - curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | |
| 137 | + | - curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | |
| 138 | 138 | - chmod +x /usr/local/bin/gordon | |
| 139 | 139 | script: | |
| 140 | 140 | - gordon images push --build | |
| @@ -42,7 +42,7 @@ deploy: | |||||
| 42 | - docker:24-dind | 42 | - docker:24-dind | ||
| 43 | before_script: | 43 | before_script: | ||
| 44 | - apk add --no-cache curl | 44 | - apk add --no-cache curl | ||
| 45 | - | - curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | 45 | + | - curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon |
| 46 | - chmod +x /usr/local/bin/gordon | 46 | - chmod +x /usr/local/bin/gordon | ||
| 47 | script: | 47 | script: | ||
| 48 | - gordon images push --build | 48 | - gordon images push --build | ||
| @@ -70,7 +70,7 @@ deploy: | |||||
| 70 | - docker:24-dind | 70 | - docker:24-dind | ||
| 71 | before_script: | 71 | before_script: | ||
| 72 | - apk add --no-cache curl | 72 | - apk add --no-cache curl | ||
| 73 | - | - curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | 73 | + | - curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon |
| 74 | - chmod +x /usr/local/bin/gordon | 74 | - chmod +x /usr/local/bin/gordon | ||
| 75 | script: | 75 | script: | ||
| 76 | - gordon images push --build | 76 | - gordon images push --build | ||
| @@ -93,7 +93,7 @@ deploy: | |||||
| 93 | - docker:24-dind | 93 | - docker:24-dind | ||
| 94 | before_script: | 94 | before_script: | ||
| 95 | - apk add --no-cache curl | 95 | - apk add --no-cache curl | ||
| 96 | - | - curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | 96 | + | - curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon |
| 97 | - chmod +x /usr/local/bin/gordon | 97 | - chmod +x /usr/local/bin/gordon | ||
| 98 | script: | 98 | script: | ||
| 99 | - gordon images push --build | 99 | - gordon images push --build | ||
| @@ -114,7 +114,7 @@ deploy: | |||||
| 114 | - docker:24-dind | 114 | - docker:24-dind | ||
| 115 | before_script: | 115 | before_script: | ||
| 116 | - apk add --no-cache curl | 116 | - apk add --no-cache curl | ||
| 117 | - | - curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | 117 | + | - curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon |
| 118 | - chmod +x /usr/local/bin/gordon | 118 | - chmod +x /usr/local/bin/gordon | ||
| 119 | script: | 119 | script: | ||
| 120 | - gordon images push --build | 120 | - gordon images push --build | ||
| @@ -134,7 +134,7 @@ deploy: | |||||
| 134 | - docker:24-dind | 134 | - docker:24-dind | ||
| 135 | before_script: | 135 | before_script: | ||
| 136 | - apk add --no-cache curl | 136 | - apk add --no-cache curl | ||
| 137 | - | - curl -fsSL https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon | 137 | + | - curl -fsSL https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64 -o /usr/local/bin/gordon |
| 138 | - chmod +x /usr/local/bin/gordon | 138 | - chmod +x /usr/local/bin/gordon | ||
| 139 | script: | 139 | script: | ||
| 140 | - gordon images push --build | 140 | - gordon images push --build | ||
M docs/installation.md +5 -5
| @@ -56,7 +56,7 @@ Manual archive installation requires downloading the matching `checksums.txt` re | |||
| 56 | 56 | **Linux (x86_64)** | |
| 57 | 57 | ||
| 58 | 58 | ```bash | |
| 59 | - | wget https://github.com/bnema/gordon/releases/latest/download/{gordon_linux_amd64.tar.gz,checksums.txt} | |
| 59 | + | wget https://git.bnema.dev/gordon/releases/latest/download/{gordon_linux_amd64.tar.gz,checksums.txt} | |
| 60 | 60 | grep -E '^[[:xdigit:]]{64} ([* ]?)gordon_linux_amd64\.tar\.gz$' checksums.txt | sha256sum --check --strict | |
| 61 | 61 | tar -xzf gordon_linux_amd64.tar.gz | |
| 62 | 62 | chmod +x gordon | |
| @@ -66,7 +66,7 @@ sudo mv gordon /usr/local/bin/ | |||
| 66 | 66 | **Linux (ARM64)** - for Raspberry Pi 4, AWS Graviton, Oracle Ampere, etc. | |
| 67 | 67 | ||
| 68 | 68 | ```bash | |
| 69 | - | wget https://github.com/bnema/gordon/releases/latest/download/{gordon_linux_arm64.tar.gz,checksums.txt} | |
| 69 | + | wget https://git.bnema.dev/gordon/releases/latest/download/{gordon_linux_arm64.tar.gz,checksums.txt} | |
| 70 | 70 | grep -E '^[[:xdigit:]]{64} ([* ]?)gordon_linux_arm64\.tar\.gz$' checksums.txt | sha256sum --check --strict | |
| 71 | 71 | tar -xzf gordon_linux_arm64.tar.gz | |
| 72 | 72 | chmod +x gordon | |
| @@ -76,7 +76,7 @@ sudo mv gordon /usr/local/bin/ | |||
| 76 | 76 | **macOS (Apple Silicon)** | |
| 77 | 77 | ||
| 78 | 78 | ```bash | |
| 79 | - | curl -LO https://github.com/bnema/gordon/releases/latest/download/{gordon_darwin_arm64.tar.gz,checksums.txt} | |
| 79 | + | curl -LO https://git.bnema.dev/gordon/releases/latest/download/{gordon_darwin_arm64.tar.gz,checksums.txt} | |
| 80 | 80 | grep -E '^[[:xdigit:]]{64} ([* ]?)gordon_darwin_arm64\.tar\.gz$' checksums.txt | shasum -a 256 --check | |
| 81 | 81 | tar -xzf gordon_darwin_arm64.tar.gz | |
| 82 | 82 | chmod +x gordon | |
| @@ -86,7 +86,7 @@ sudo mv gordon /usr/local/bin/ | |||
| 86 | 86 | **macOS (Intel)** | |
| 87 | 87 | ||
| 88 | 88 | ```bash | |
| 89 | - | curl -LO https://github.com/bnema/gordon/releases/latest/download/{gordon_darwin_amd64.tar.gz,checksums.txt} | |
| 89 | + | curl -LO https://git.bnema.dev/gordon/releases/latest/download/{gordon_darwin_amd64.tar.gz,checksums.txt} | |
| 90 | 90 | grep -E '^[[:xdigit:]]{64} ([* ]?)gordon_darwin_amd64\.tar\.gz$' checksums.txt | shasum -a 256 --check | |
| 91 | 91 | tar -xzf gordon_darwin_amd64.tar.gz | |
| 92 | 92 | chmod +x gordon | |
| @@ -352,7 +352,7 @@ curl -fsSL https://bnema.dev/gordon/install | GORDON_PRERELEASE=1 sh | |||
| 352 | 352 | curl -fsSL https://bnema.dev/gordon/install | GORDON_CHANNEL=next sh | |
| 353 | 353 | ``` | |
| 354 | 354 | ||
| 355 | - | Stable, exact-version, and pre-release installs download release binaries and verify their published checksums. The default stable install resolves the latest tag from the `github.com/bnema/gordon/releases/latest` redirect, so it does not use the rate-limited GitHub API; exact-version installs make no lookup at all. Pre-release lookups still use the GitHub API. The `next` channel is an **unverified development source build**: it resolves the branch through the GitHub API, pins the resulting commit SHA, downloads that exact source snapshot, and builds it locally for the detected platform. It requires the Go version declared by that commit's `go.mod`, is not covered by release checksums, and may be unstable. Do not combine `GORDON_CHANNEL=next` with `GORDON_VERSION` or `GORDON_PRERELEASE`. | |
| 355 | + | Stable, exact-version, and pre-release installs download release binaries and verify their published checksums. The default stable install resolves the latest tag from the `git.bnema.dev/gordon/releases/latest` redirect on the ermite forge (no API call); exact-version installs make no lookup at all. Pre-release lookups use the forge's GitHub-compatible API. The `next` channel is an **unverified development source build**: it resolves the branch through the GitHub API, pins the resulting commit SHA, downloads that exact source snapshot, and builds it locally for the detected platform. It requires the Go version declared by that commit's `go.mod`, is not covered by release checksums, and may be unstable. Do not combine `GORDON_CHANNEL=next` with `GORDON_VERSION` or `GORDON_PRERELEASE`. | |
| 356 | 356 | ||
| 357 | 357 | ## Verify Installation | |
| 358 | 358 | ||
| @@ -56,7 +56,7 @@ Manual archive installation requires downloading the matching `checksums.txt` re | |||||
| 56 | **Linux (x86_64)** | 56 | **Linux (x86_64)** | ||
| 57 | 57 | ||||
| 58 | ```bash | 58 | ```bash | ||
| 59 | - | wget https://github.com/bnema/gordon/releases/latest/download/{gordon_linux_amd64.tar.gz,checksums.txt} | 59 | + | wget https://git.bnema.dev/gordon/releases/latest/download/{gordon_linux_amd64.tar.gz,checksums.txt} |
| 60 | grep -E '^[[:xdigit:]]{64} ([* ]?)gordon_linux_amd64\.tar\.gz$' checksums.txt | sha256sum --check --strict | 60 | grep -E '^[[:xdigit:]]{64} ([* ]?)gordon_linux_amd64\.tar\.gz$' checksums.txt | sha256sum --check --strict | ||
| 61 | tar -xzf gordon_linux_amd64.tar.gz | 61 | tar -xzf gordon_linux_amd64.tar.gz | ||
| 62 | chmod +x gordon | 62 | chmod +x gordon | ||
| @@ -66,7 +66,7 @@ sudo mv gordon /usr/local/bin/ | |||||
| 66 | **Linux (ARM64)** - for Raspberry Pi 4, AWS Graviton, Oracle Ampere, etc. | 66 | **Linux (ARM64)** - for Raspberry Pi 4, AWS Graviton, Oracle Ampere, etc. | ||
| 67 | 67 | ||||
| 68 | ```bash | 68 | ```bash | ||
| 69 | - | wget https://github.com/bnema/gordon/releases/latest/download/{gordon_linux_arm64.tar.gz,checksums.txt} | 69 | + | wget https://git.bnema.dev/gordon/releases/latest/download/{gordon_linux_arm64.tar.gz,checksums.txt} |
| 70 | grep -E '^[[:xdigit:]]{64} ([* ]?)gordon_linux_arm64\.tar\.gz$' checksums.txt | sha256sum --check --strict | 70 | grep -E '^[[:xdigit:]]{64} ([* ]?)gordon_linux_arm64\.tar\.gz$' checksums.txt | sha256sum --check --strict | ||
| 71 | tar -xzf gordon_linux_arm64.tar.gz | 71 | tar -xzf gordon_linux_arm64.tar.gz | ||
| 72 | chmod +x gordon | 72 | chmod +x gordon | ||
| @@ -76,7 +76,7 @@ sudo mv gordon /usr/local/bin/ | |||||
| 76 | **macOS (Apple Silicon)** | 76 | **macOS (Apple Silicon)** | ||
| 77 | 77 | ||||
| 78 | ```bash | 78 | ```bash | ||
| 79 | - | curl -LO https://github.com/bnema/gordon/releases/latest/download/{gordon_darwin_arm64.tar.gz,checksums.txt} | 79 | + | curl -LO https://git.bnema.dev/gordon/releases/latest/download/{gordon_darwin_arm64.tar.gz,checksums.txt} |
| 80 | grep -E '^[[:xdigit:]]{64} ([* ]?)gordon_darwin_arm64\.tar\.gz$' checksums.txt | shasum -a 256 --check | 80 | grep -E '^[[:xdigit:]]{64} ([* ]?)gordon_darwin_arm64\.tar\.gz$' checksums.txt | shasum -a 256 --check | ||
| 81 | tar -xzf gordon_darwin_arm64.tar.gz | 81 | tar -xzf gordon_darwin_arm64.tar.gz | ||
| 82 | chmod +x gordon | 82 | chmod +x gordon | ||
| @@ -86,7 +86,7 @@ sudo mv gordon /usr/local/bin/ | |||||
| 86 | **macOS (Intel)** | 86 | **macOS (Intel)** | ||
| 87 | 87 | ||||
| 88 | ```bash | 88 | ```bash | ||
| 89 | - | curl -LO https://github.com/bnema/gordon/releases/latest/download/{gordon_darwin_amd64.tar.gz,checksums.txt} | 89 | + | curl -LO https://git.bnema.dev/gordon/releases/latest/download/{gordon_darwin_amd64.tar.gz,checksums.txt} |
| 90 | grep -E '^[[:xdigit:]]{64} ([* ]?)gordon_darwin_amd64\.tar\.gz$' checksums.txt | shasum -a 256 --check | 90 | grep -E '^[[:xdigit:]]{64} ([* ]?)gordon_darwin_amd64\.tar\.gz$' checksums.txt | shasum -a 256 --check | ||
| 91 | tar -xzf gordon_darwin_amd64.tar.gz | 91 | tar -xzf gordon_darwin_amd64.tar.gz | ||
| 92 | chmod +x gordon | 92 | chmod +x gordon | ||
| @@ -352,7 +352,7 @@ curl -fsSL https://bnema.dev/gordon/install | GORDON_PRERELEASE=1 sh | |||||
| 352 | curl -fsSL https://bnema.dev/gordon/install | GORDON_CHANNEL=next sh | 352 | curl -fsSL https://bnema.dev/gordon/install | GORDON_CHANNEL=next sh | ||
| 353 | ``` | 353 | ``` | ||
| 354 | 354 | ||||
| 355 | - | Stable, exact-version, and pre-release installs download release binaries and verify their published checksums. The default stable install resolves the latest tag from the `github.com/bnema/gordon/releases/latest` redirect, so it does not use the rate-limited GitHub API; exact-version installs make no lookup at all. Pre-release lookups still use the GitHub API. The `next` channel is an **unverified development source build**: it resolves the branch through the GitHub API, pins the resulting commit SHA, downloads that exact source snapshot, and builds it locally for the detected platform. It requires the Go version declared by that commit's `go.mod`, is not covered by release checksums, and may be unstable. Do not combine `GORDON_CHANNEL=next` with `GORDON_VERSION` or `GORDON_PRERELEASE`. | 355 | + | Stable, exact-version, and pre-release installs download release binaries and verify their published checksums. The default stable install resolves the latest tag from the `git.bnema.dev/gordon/releases/latest` redirect on the ermite forge (no API call); exact-version installs make no lookup at all. Pre-release lookups use the forge's GitHub-compatible API. The `next` channel is an **unverified development source build**: it resolves the branch through the GitHub API, pins the resulting commit SHA, downloads that exact source snapshot, and builds it locally for the detected platform. It requires the Go version declared by that commit's `go.mod`, is not covered by release checksums, and may be unstable. Do not combine `GORDON_CHANNEL=next` with `GORDON_VERSION` or `GORDON_PRERELEASE`. |
| 356 | 356 | ||||
| 357 | ## Verify Installation | 357 | ## Verify Installation | ||
| 358 | 358 | ||||
M install.sh +15 -9
| @@ -7,6 +7,9 @@ set -e | |||
| 7 | 7 | # Usage with next source build: curl -fsSL https://bnema.dev/gordon/install | GORDON_CHANNEL=next sh | |
| 8 | 8 | ||
| 9 | 9 | REPO="bnema/gordon" | |
| 10 | + | # Releases are hosted on the ermite forge; only the `next` source build uses GitHub. | |
| 11 | + | FORGE="https://git.bnema.dev" | |
| 12 | + | FORGE_REPO="gordon" | |
| 10 | 13 | VERSION="${GORDON_VERSION:-latest}" | |
| 11 | 14 | CHANNEL="${GORDON_CHANNEL:-stable}" | |
| 12 | 15 | ||
| @@ -345,13 +348,16 @@ TARBALL="gordon_${OS}_${ARCH}.tar.gz" | |||
| 345 | 348 | # Determine version to download | |
| 346 | 349 | if [ "$VERSION" = "latest" ] && [ -n "$GORDON_PRERELEASE" ]; then | |
| 347 | 350 | echo "Finding latest pre-release..." | |
| 348 | - | # Get latest release (including pre-releases) from GitHub API | |
| 349 | - | RELEASE_DATA=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases?per_page=1" 2>/dev/null || echo "") | |
| 351 | + | # Get latest release (including pre-releases) from the forge's GitHub-compatible API | |
| 352 | + | RELEASE_DATA=$(curl -fsSL "${FORGE}/-/github/api/repos/${REPO}/releases?per_page=1" 2>/dev/null || echo "") | |
| 350 | 353 | if [ -z "$RELEASE_DATA" ]; then | |
| 351 | - | echo "Error: Failed to fetch release information from GitHub API" | |
| 354 | + | echo "Error: Failed to fetch release information from ${FORGE}/-/github/api/repos/${REPO}/releases" | |
| 352 | 355 | exit 1 | |
| 353 | 356 | fi | |
| 354 | - | VERSION=$(echo "$RELEASE_DATA" | grep -m1 '"tag_name"' | sed -E 's/.*"tag_name":\s*"([^"]+)".*/\1/') | |
| 357 | + | VERSION=$(printf '%s\n' "$RELEASE_DATA" | grep -o '"tag_name"[[:space:]]*:[[:space:]]*"[^"]*"' | head -n 1 | cut -d'"' -f4) | |
| 358 | + | case "$VERSION" in | |
| 359 | + | *[!0-9A-Za-z._+-]*) VERSION="" ;; | |
| 360 | + | esac | |
| 355 | 361 | if [ -z "$VERSION" ]; then | |
| 356 | 362 | echo "Error: Could not determine latest pre-release version" | |
| 357 | 363 | exit 1 | |
| @@ -362,13 +368,13 @@ elif [ "$VERSION" = "latest" ]; then | |||
| 362 | 368 | # Resolve "latest" to an exact tag by following the web redirect | |
| 363 | 369 | # (releases/latest -> releases/tag/<tag>). Unlike the REST API, this is | |
| 364 | 370 | # not rate-limited per IP for anonymous clients. | |
| 365 | - | LATEST_URL=$(curl -fsSL -o /dev/null -w '%{url_effective}' "https://github.com/${REPO}/releases/latest" 2>/dev/null || echo "") | |
| 366 | - | VERSION=${LATEST_URL#"https://github.com/${REPO}/releases/tag/"} | |
| 371 | + | LATEST_URL=$(curl -fsSL -o /dev/null -w '%{url_effective}' "${FORGE}/${FORGE_REPO}/releases/latest" 2>/dev/null || echo "") | |
| 372 | + | VERSION=${LATEST_URL#"${FORGE}/${FORGE_REPO}/releases/tag/"} | |
| 367 | 373 | case "$VERSION" in | |
| 368 | 374 | "$LATEST_URL"|''|*[!0-9A-Za-z._+-]*) VERSION="" ;; | |
| 369 | 375 | esac | |
| 370 | 376 | if [ -z "$VERSION" ]; then | |
| 371 | - | echo "Error: Could not determine latest stable version from https://github.com/${REPO}/releases/latest" | |
| 377 | + | echo "Error: Could not determine latest stable version from ${FORGE}/${FORGE_REPO}/releases/latest" | |
| 372 | 378 | echo "Set GORDON_VERSION (e.g. GORDON_VERSION=v3.4.0) to install a specific release." | |
| 373 | 379 | exit 1 | |
| 374 | 380 | fi | |
| @@ -377,14 +383,14 @@ else | |||
| 377 | 383 | echo "Using version: ${VERSION}" | |
| 378 | 384 | fi | |
| 379 | 385 | ||
| 380 | - | DOWNLOAD_URL="https://github.com/${REPO}/releases/download/${VERSION}/${TARBALL}" | |
| 386 | + | DOWNLOAD_URL="${FORGE}/${FORGE_REPO}/releases/download/${VERSION}/${TARBALL}" | |
| 381 | 387 | ||
| 382 | 388 | # Create temporary directory | |
| 383 | 389 | TMP_DIR=$(mktemp -d) | |
| 384 | 390 | trap 'rm -rf "$TMP_DIR"' EXIT | |
| 385 | 391 | ||
| 386 | 392 | # Download checksums file | |
| 387 | - | CHECKSUMS_URL="https://github.com/${REPO}/releases/download/${VERSION}/checksums.txt" | |
| 393 | + | CHECKSUMS_URL="${FORGE}/${FORGE_REPO}/releases/download/${VERSION}/checksums.txt" | |
| 388 | 394 | echo "Downloading checksums..." | |
| 389 | 395 | if ! curl -fsSL "$CHECKSUMS_URL" -o "$TMP_DIR/checksums.txt"; then | |
| 390 | 396 | echo "Error: Failed to download checksums file" | |
| @@ -7,6 +7,9 @@ set -e | |||||
| 7 | # Usage with next source build: curl -fsSL https://bnema.dev/gordon/install | GORDON_CHANNEL=next sh | 7 | # Usage with next source build: curl -fsSL https://bnema.dev/gordon/install | GORDON_CHANNEL=next sh | ||
| 8 | 8 | ||||
| 9 | REPO="bnema/gordon" | 9 | REPO="bnema/gordon" | ||
| 10 | + | # Releases are hosted on the ermite forge; only the `next` source build uses GitHub. | |||
| 11 | + | FORGE="https://git.bnema.dev" | |||
| 12 | + | FORGE_REPO="gordon" | |||
| 10 | VERSION="${GORDON_VERSION:-latest}" | 13 | VERSION="${GORDON_VERSION:-latest}" | ||
| 11 | CHANNEL="${GORDON_CHANNEL:-stable}" | 14 | CHANNEL="${GORDON_CHANNEL:-stable}" | ||
| 12 | 15 | ||||
| @@ -345,13 +348,16 @@ TARBALL="gordon_${OS}_${ARCH}.tar.gz" | |||||
| 345 | # Determine version to download | 348 | # Determine version to download | ||
| 346 | if [ "$VERSION" = "latest" ] && [ -n "$GORDON_PRERELEASE" ]; then | 349 | if [ "$VERSION" = "latest" ] && [ -n "$GORDON_PRERELEASE" ]; then | ||
| 347 | echo "Finding latest pre-release..." | 350 | echo "Finding latest pre-release..." | ||
| 348 | - | # Get latest release (including pre-releases) from GitHub API | 351 | + | # Get latest release (including pre-releases) from the forge's GitHub-compatible API |
| 349 | - | RELEASE_DATA=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases?per_page=1" 2>/dev/null || echo "") | 352 | + | RELEASE_DATA=$(curl -fsSL "${FORGE}/-/github/api/repos/${REPO}/releases?per_page=1" 2>/dev/null || echo "") |
| 350 | if [ -z "$RELEASE_DATA" ]; then | 353 | if [ -z "$RELEASE_DATA" ]; then | ||
| 351 | - | echo "Error: Failed to fetch release information from GitHub API" | 354 | + | echo "Error: Failed to fetch release information from ${FORGE}/-/github/api/repos/${REPO}/releases" |
| 352 | exit 1 | 355 | exit 1 | ||
| 353 | fi | 356 | fi | ||
| 354 | - | VERSION=$(echo "$RELEASE_DATA" | grep -m1 '"tag_name"' | sed -E 's/.*"tag_name":\s*"([^"]+)".*/\1/') | 357 | + | VERSION=$(printf '%s\n' "$RELEASE_DATA" | grep -o '"tag_name"[[:space:]]*:[[:space:]]*"[^"]*"' | head -n 1 | cut -d'"' -f4) |
| 358 | + | case "$VERSION" in | |||
| 359 | + | *[!0-9A-Za-z._+-]*) VERSION="" ;; | |||
| 360 | + | esac | |||
| 355 | if [ -z "$VERSION" ]; then | 361 | if [ -z "$VERSION" ]; then | ||
| 356 | echo "Error: Could not determine latest pre-release version" | 362 | echo "Error: Could not determine latest pre-release version" | ||
| 357 | exit 1 | 363 | exit 1 | ||
| @@ -362,13 +368,13 @@ elif [ "$VERSION" = "latest" ]; then | |||||
| 362 | # Resolve "latest" to an exact tag by following the web redirect | 368 | # Resolve "latest" to an exact tag by following the web redirect | ||
| 363 | # (releases/latest -> releases/tag/<tag>). Unlike the REST API, this is | 369 | # (releases/latest -> releases/tag/<tag>). Unlike the REST API, this is | ||
| 364 | # not rate-limited per IP for anonymous clients. | 370 | # not rate-limited per IP for anonymous clients. | ||
| 365 | - | LATEST_URL=$(curl -fsSL -o /dev/null -w '%{url_effective}' "https://github.com/${REPO}/releases/latest" 2>/dev/null || echo "") | 371 | + | LATEST_URL=$(curl -fsSL -o /dev/null -w '%{url_effective}' "${FORGE}/${FORGE_REPO}/releases/latest" 2>/dev/null || echo "") |
| 366 | - | VERSION=${LATEST_URL#"https://github.com/${REPO}/releases/tag/"} | 372 | + | VERSION=${LATEST_URL#"${FORGE}/${FORGE_REPO}/releases/tag/"} |
| 367 | case "$VERSION" in | 373 | case "$VERSION" in | ||
| 368 | "$LATEST_URL"|''|*[!0-9A-Za-z._+-]*) VERSION="" ;; | 374 | "$LATEST_URL"|''|*[!0-9A-Za-z._+-]*) VERSION="" ;; | ||
| 369 | esac | 375 | esac | ||
| 370 | if [ -z "$VERSION" ]; then | 376 | if [ -z "$VERSION" ]; then | ||
| 371 | - | echo "Error: Could not determine latest stable version from https://github.com/${REPO}/releases/latest" | 377 | + | echo "Error: Could not determine latest stable version from ${FORGE}/${FORGE_REPO}/releases/latest" |
| 372 | echo "Set GORDON_VERSION (e.g. GORDON_VERSION=v3.4.0) to install a specific release." | 378 | echo "Set GORDON_VERSION (e.g. GORDON_VERSION=v3.4.0) to install a specific release." | ||
| 373 | exit 1 | 379 | exit 1 | ||
| 374 | fi | 380 | fi | ||
| @@ -377,14 +383,14 @@ else | |||||
| 377 | echo "Using version: ${VERSION}" | 383 | echo "Using version: ${VERSION}" | ||
| 378 | fi | 384 | fi | ||
| 379 | 385 | ||||
| 380 | - | DOWNLOAD_URL="https://github.com/${REPO}/releases/download/${VERSION}/${TARBALL}" | 386 | + | DOWNLOAD_URL="${FORGE}/${FORGE_REPO}/releases/download/${VERSION}/${TARBALL}" |
| 381 | 387 | ||||
| 382 | # Create temporary directory | 388 | # Create temporary directory | ||
| 383 | TMP_DIR=$(mktemp -d) | 389 | TMP_DIR=$(mktemp -d) | ||
| 384 | trap 'rm -rf "$TMP_DIR"' EXIT | 390 | trap 'rm -rf "$TMP_DIR"' EXIT | ||
| 385 | 391 | ||||
| 386 | # Download checksums file | 392 | # Download checksums file | ||
| 387 | - | CHECKSUMS_URL="https://github.com/${REPO}/releases/download/${VERSION}/checksums.txt" | 393 | + | CHECKSUMS_URL="${FORGE}/${FORGE_REPO}/releases/download/${VERSION}/checksums.txt" |
| 388 | echo "Downloading checksums..." | 394 | echo "Downloading checksums..." | ||
| 389 | if ! curl -fsSL "$CHECKSUMS_URL" -o "$TMP_DIR/checksums.txt"; then | 395 | if ! curl -fsSL "$CHECKSUMS_URL" -o "$TMP_DIR/checksums.txt"; then | ||
| 390 | echo "Error: Failed to download checksums file" | 396 | echo "Error: Failed to download checksums file" | ||
M tests/install_next_test.sh +5 -4
| @@ -36,7 +36,7 @@ printf '%s\n' "\$*" >>'$case_dir/curl.log' | |||
| 36 | 36 | case "\$*" in | |
| 37 | 37 | *api.github.com/repos/bnema/gordon/commits/next*) printf '%s\n' '{"sha":"$SHA"}' ;; | |
| 38 | 38 | *codeload.github.com/bnema/gordon/tar.gz/$SHA*) : >'$case_dir/source.tar.gz' ;; | |
| 39 | - | *github.com/bnema/gordon/releases/latest*) printf '%s' "\${MOCK_LATEST_URL-https://github.com/bnema/gordon/releases/tag/v9.9.9}" ;; | |
| 39 | + | *git.bnema.dev/gordon/releases/latest*) printf '%s' "\${MOCK_LATEST_URL-https://git.bnema.dev/gordon/releases/tag/v9.9.9}" ;; | |
| 40 | 40 | *) exit 90 ;; | |
| 41 | 41 | esac | |
| 42 | 42 | EOF | |
| @@ -249,7 +249,8 @@ test_stable_latest_without_api() { | |||
| 249 | 249 | run_case stable-latest env sh "$ROOT/install.sh" | |
| 250 | 250 | # The mock refuses the checksum download; resolution is what is tested. | |
| 251 | 251 | if grep -q "Resolved version: v9.9.9" "$case_dir/out" && | |
| 252 | - | grep -q "github.com/bnema/gordon/releases/download/v9.9.9/checksums.txt" "$case_dir/curl.log" && | |
| 252 | + | grep -q "git.bnema.dev/gordon/releases/download/v9.9.9/checksums.txt" "$case_dir/curl.log" && | |
| 253 | + | ! grep -q "/-/github/api" "$case_dir/curl.log" && | |
| 253 | 254 | ! grep -q "api.github.com" "$case_dir/curl.log"; then | |
| 254 | 255 | pass "stable latest resolves from the release redirect without the API" | |
| 255 | 256 | else | |
| @@ -257,7 +258,7 @@ test_stable_latest_without_api() { | |||
| 257 | 258 | fail "stable latest resolves from the release redirect without the API" | |
| 258 | 259 | fi | |
| 259 | 260 | ||
| 260 | - | run_case stable-latest-bad env MOCK_LATEST_URL='https://github.com/bnema/gordon/releases' sh "$ROOT/install.sh" | |
| 261 | + | run_case stable-latest-bad env MOCK_LATEST_URL='https://git.bnema.dev/gordon/releases' sh "$ROOT/install.sh" | |
| 261 | 262 | if [ "$status" -ne 0 ] && grep -q "Could not determine latest stable version" "$case_dir/out" && | |
| 262 | 263 | ! grep -q "releases/download" "$case_dir/curl.log"; then | |
| 263 | 264 | pass "unexpected latest redirect is rejected" | |
| @@ -266,7 +267,7 @@ test_stable_latest_without_api() { | |||
| 266 | 267 | fail "unexpected latest redirect is rejected" | |
| 267 | 268 | fi | |
| 268 | 269 | ||
| 269 | - | run_case stable-latest-unsafe env MOCK_LATEST_URL='https://github.com/bnema/gordon/releases/tag/v1.0.0;rm' sh "$ROOT/install.sh" | |
| 270 | + | run_case stable-latest-unsafe env MOCK_LATEST_URL='https://git.bnema.dev/gordon/releases/tag/v1.0.0;rm' sh "$ROOT/install.sh" | |
| 270 | 271 | if [ "$status" -ne 0 ] && grep -q "Could not determine latest stable version" "$case_dir/out"; then | |
| 271 | 272 | pass "unsafe latest tag is rejected" | |
| 272 | 273 | else | |
| @@ -36,7 +36,7 @@ printf '%s\n' "\$*" >>'$case_dir/curl.log' | |||||
| 36 | case "\$*" in | 36 | case "\$*" in | ||
| 37 | *api.github.com/repos/bnema/gordon/commits/next*) printf '%s\n' '{"sha":"$SHA"}' ;; | 37 | *api.github.com/repos/bnema/gordon/commits/next*) printf '%s\n' '{"sha":"$SHA"}' ;; | ||
| 38 | *codeload.github.com/bnema/gordon/tar.gz/$SHA*) : >'$case_dir/source.tar.gz' ;; | 38 | *codeload.github.com/bnema/gordon/tar.gz/$SHA*) : >'$case_dir/source.tar.gz' ;; | ||
| 39 | - | *github.com/bnema/gordon/releases/latest*) printf '%s' "\${MOCK_LATEST_URL-https://github.com/bnema/gordon/releases/tag/v9.9.9}" ;; | 39 | + | *git.bnema.dev/gordon/releases/latest*) printf '%s' "\${MOCK_LATEST_URL-https://git.bnema.dev/gordon/releases/tag/v9.9.9}" ;; |
| 40 | *) exit 90 ;; | 40 | *) exit 90 ;; | ||
| 41 | esac | 41 | esac | ||
| 42 | EOF | 42 | EOF | ||
| @@ -249,7 +249,8 @@ test_stable_latest_without_api() { | |||||
| 249 | run_case stable-latest env sh "$ROOT/install.sh" | 249 | run_case stable-latest env sh "$ROOT/install.sh" | ||
| 250 | # The mock refuses the checksum download; resolution is what is tested. | 250 | # The mock refuses the checksum download; resolution is what is tested. | ||
| 251 | if grep -q "Resolved version: v9.9.9" "$case_dir/out" && | 251 | if grep -q "Resolved version: v9.9.9" "$case_dir/out" && | ||
| 252 | - | grep -q "github.com/bnema/gordon/releases/download/v9.9.9/checksums.txt" "$case_dir/curl.log" && | 252 | + | grep -q "git.bnema.dev/gordon/releases/download/v9.9.9/checksums.txt" "$case_dir/curl.log" && |
| 253 | + | ! grep -q "/-/github/api" "$case_dir/curl.log" && | |||
| 253 | ! grep -q "api.github.com" "$case_dir/curl.log"; then | 254 | ! grep -q "api.github.com" "$case_dir/curl.log"; then | ||
| 254 | pass "stable latest resolves from the release redirect without the API" | 255 | pass "stable latest resolves from the release redirect without the API" | ||
| 255 | else | 256 | else | ||
| @@ -257,7 +258,7 @@ test_stable_latest_without_api() { | |||||
| 257 | fail "stable latest resolves from the release redirect without the API" | 258 | fail "stable latest resolves from the release redirect without the API" | ||
| 258 | fi | 259 | fi | ||
| 259 | 260 | ||||
| 260 | - | run_case stable-latest-bad env MOCK_LATEST_URL='https://github.com/bnema/gordon/releases' sh "$ROOT/install.sh" | 261 | + | run_case stable-latest-bad env MOCK_LATEST_URL='https://git.bnema.dev/gordon/releases' sh "$ROOT/install.sh" |
| 261 | if [ "$status" -ne 0 ] && grep -q "Could not determine latest stable version" "$case_dir/out" && | 262 | if [ "$status" -ne 0 ] && grep -q "Could not determine latest stable version" "$case_dir/out" && | ||
| 262 | ! grep -q "releases/download" "$case_dir/curl.log"; then | 263 | ! grep -q "releases/download" "$case_dir/curl.log"; then | ||
| 263 | pass "unexpected latest redirect is rejected" | 264 | pass "unexpected latest redirect is rejected" | ||
| @@ -266,7 +267,7 @@ test_stable_latest_without_api() { | |||||
| 266 | fail "unexpected latest redirect is rejected" | 267 | fail "unexpected latest redirect is rejected" | ||
| 267 | fi | 268 | fi | ||
| 268 | 269 | ||||
| 269 | - | run_case stable-latest-unsafe env MOCK_LATEST_URL='https://github.com/bnema/gordon/releases/tag/v1.0.0;rm' sh "$ROOT/install.sh" | 270 | + | run_case stable-latest-unsafe env MOCK_LATEST_URL='https://git.bnema.dev/gordon/releases/tag/v1.0.0;rm' sh "$ROOT/install.sh" |
| 270 | if [ "$status" -ne 0 ] && grep -q "Could not determine latest stable version" "$case_dir/out"; then | 271 | if [ "$status" -ne 0 ] && grep -q "Could not determine latest stable version" "$case_dir/out"; then | ||
| 271 | pass "unsafe latest tag is rejected" | 272 | pass "unsafe latest tag is rejected" | ||
| 272 | else | 273 | else | ||
M wiki/guides/podman-rootless.md +2 -2
| @@ -95,9 +95,9 @@ EOF | |||
| 95 | 95 | ||
| 96 | 96 | ```bash | |
| 97 | 97 | # Download (choose your architecture) | |
| 98 | - | wget https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64.tar.gz | |
| 98 | + | wget https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64.tar.gz | |
| 99 | 99 | # or for ARM64: | |
| 100 | - | # wget https://github.com/bnema/gordon/releases/latest/download/gordon_linux_arm64.tar.gz | |
| 100 | + | # wget https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_arm64.tar.gz | |
| 101 | 101 | ||
| 102 | 102 | tar -xzf gordon_linux_*.tar.gz | |
| 103 | 103 | chmod +x gordon | |
| @@ -95,9 +95,9 @@ EOF | |||||
| 95 | 95 | ||||
| 96 | ```bash | 96 | ```bash | ||
| 97 | # Download (choose your architecture) | 97 | # Download (choose your architecture) | ||
| 98 | - | wget https://github.com/bnema/gordon/releases/latest/download/gordon_linux_amd64.tar.gz | 98 | + | wget https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_amd64.tar.gz |
| 99 | # or for ARM64: | 99 | # or for ARM64: | ||
| 100 | - | # wget https://github.com/bnema/gordon/releases/latest/download/gordon_linux_arm64.tar.gz | 100 | + | # wget https://git.bnema.dev/gordon/releases/latest/download/gordon_linux_arm64.tar.gz |
| 101 | 101 | ||||
| 102 | tar -xzf gordon_linux_*.tar.gz | 102 | tar -xzf gordon_linux_*.tar.gz | ||
| 103 | chmod +x gordon | 103 | chmod +x gordon | ||