1 Commits
v1.0.1 ... main

Author SHA1 Message Date
7482d9b531 Make package publishing idempotent [skip ci] 2026-08-15 16:01:21 +08:00

View File

@@ -112,6 +112,14 @@ jobs:
package_url="$package_server/api/packages/$GITEA_OWNER/generic/bdrclone/$package_version"
for package_file in dist/*.tar.gz dist/SHA256SUMS; do
package_file_url="$package_url/$(basename "$package_file")"
if curl --fail --silent --head \
--header "Authorization: token $GITEA_TOKEN" \
--header "Host: $gitea_host" \
"$package_file_url" >/dev/null; then
echo "Package file already exists: $(basename "$package_file")"
continue
fi
curl --fail-with-body --silent --show-error \
--retry 5 --retry-all-errors --retry-delay 3 \
--connect-timeout 20 --max-time 300 \
@@ -119,16 +127,25 @@ jobs:
--header "Authorization: token $GITEA_TOKEN" \
--header "Host: $gitea_host" \
--upload-file "$package_file" \
"$package_url/$(basename "$package_file")"
"$package_file_url"
done
curl --fail-with-body --silent --show-error \
--retry 5 --retry-all-errors --retry-delay 3 \
--connect-timeout 20 --max-time 300 \
--request POST \
--header "Authorization: token $GITEA_TOKEN" \
--header "Host: $gitea_host" \
"$package_server/api/v1/packages/$GITEA_OWNER/generic/bdrclone/-/link/$repository_name"
linked_repository="$(
curl --fail --silent --show-error \
--header "Authorization: token $GITEA_TOKEN" \
--header "Host: $gitea_host" \
"$package_server/api/v1/packages/$GITEA_OWNER/generic/bdrclone/$package_version" \
| jq --raw-output '.repository.full_name // ""'
)"
if [[ "$linked_repository" != "$GITEA_REPOSITORY" ]]; then
curl --fail-with-body --silent --show-error \
--retry 5 --retry-all-errors --retry-delay 3 \
--connect-timeout 20 --max-time 300 \
--request POST \
--header "Authorization: token $GITEA_TOKEN" \
--header "Host: $gitea_host" \
"$package_server/api/v1/packages/$GITEA_OWNER/generic/bdrclone/-/link/$repository_name"
fi
- name: Upload temporary build artifacts
if: ${{ !startsWith(github.ref, 'refs/tags/v') && inputs.publish_version == '' }}