2 Commits
Author SHA1 Message Date
magdevandClaude Opus 4.5 1f256b236c fix(ci): Handle existing releases when re-releasing
Create Release Package / build-release (push) Successful in 50s
- Check if release already exists for the tag
- Delete existing release before creating new one
- Allows re-releasing the same version after fixes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 22:55:35 +01:00
magdevandClaude Opus 4.5 36a546c224 fix: Simplify localhost detection and add early metrics support
Create Release Package / build-release (push) Failing after 53s
- License/Manager: Simplify localhost TLD detection to .localhost and .local
- Prometheus/Integration: Add collect_early_metrics() for wp-prometheus early mode

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 22:53:07 +01:00
3 changed files with 50 additions and 9 deletions

No files matched your search

+15
View File
@@ -161,6 +161,21 @@ jobs:
# Read release notes # Read release notes
BODY=$(cat release_notes.txt) BODY=$(cat release_notes.txt)
# Check if release already exists for this tag
EXISTING_RELEASE=$(curl -s \
-H "Authorization: token ${GITEA_TOKEN}" \
"${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}/releases/tags/${TAG_NAME}")
EXISTING_ID=$(echo "$EXISTING_RELEASE" | jq -r '.id // empty')
if [ -n "$EXISTING_ID" ] && [ "$EXISTING_ID" != "null" ]; then
echo "Release already exists for tag ${TAG_NAME} (ID: $EXISTING_ID). Deleting..."
curl -s -X DELETE \
-H "Authorization: token ${GITEA_TOKEN}" \
"${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${EXISTING_ID}"
echo "Deleted existing release."
fi
# Create release via Gitea API # Create release via Gitea API
RELEASE_RESPONSE=$(curl -s -X POST \ RELEASE_RESPONSE=$(curl -s -X POST \
-H "Authorization: token ${GITEA_TOKEN}" \ -H "Authorization: token ${GITEA_TOKEN}" \
+11 -9
View File
@@ -443,23 +443,25 @@ final class Manager {
public static function is_localhost(): bool { public static function is_localhost(): bool {
$host = wp_parse_url( home_url(), PHP_URL_HOST ); $host = wp_parse_url( home_url(), PHP_URL_HOST );
// Common localhost identifiers. $localhost_patterns = array(
$localhost_hosts = array(
'localhost', 'localhost',
'127.0.0.1', '127.0.0.1',
'::1', '::1',
); );
if ( in_array( $host, $localhost_hosts, true ) ) { // Check exact matches.
if ( in_array( $host, $localhost_patterns, true ) ) {
return true; return true;
} }
// Common local development TLDs. // Check .localhost TLD (e.g., mysite.localhost).
$local_tlds = array( '.local', '.test', '.localhost', '.dev.local' ); if ( str_ends_with( $host, '.localhost' ) ) {
foreach ( $local_tlds as $tld ) { return true;
if ( str_ends_with( $host, $tld ) ) { }
return true;
} // Check .local TLD (common for local development).
if ( str_ends_with( $host, '.local' ) ) {
return true;
} }
return false; return false;
+24
View File
@@ -76,6 +76,30 @@ class Integration {
return $this->prometheus_active; return $this->prometheus_active;
} }
/**
* Collect metrics for early metrics mode.
*
* This static method can be called directly by wp-prometheus during early
* metrics mode when the wp_prometheus_collect_metrics hook is skipped.
*
* Usage in wp-prometheus early metrics handler:
*
* ```php
* // After creating the collector, before rendering:
* if ( class_exists( 'WP_FediStream\Prometheus\Integration' ) ) {
* \WP_FediStream\Prometheus\Integration::collect_early_metrics( $collector );
* }
* ```
*
* @param object $collector The Prometheus collector instance.
* @return void
*/
public static function collect_early_metrics( object $collector ): void {
$integration = new self();
$integration->prometheus_active = true; // Force active since we're being called directly.
$integration->collect_metrics( $collector );
}
/** /**
* Collect FediStream metrics. * Collect FediStream metrics.
* *