diff --git a/hooks/pre-push b/hooks/pre-push index 25743f2..d6523b2 100755 --- a/hooks/pre-push +++ b/hooks/pre-push @@ -4,7 +4,7 @@ set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" REMOTE_NAME="${1:-origin}" QUIET_RELEASE="${QUIET_RELEASE:-1}" -RELEASE_LOG="${RELEASE_LOG:-$ROOT_DIR/build/release.log}" +RELEASE_LOG="${RELEASE_LOG:-$ROOT_DIR/.git/release.log}" if [[ -n "${SKIP_RELEASE:-}" ]]; then echo "release: skipped (SKIP_RELEASE=1)" @@ -76,7 +76,7 @@ else fi if SKIP_RELEASE=1 git -C "$ROOT_DIR" push --quiet "$REMOTE_NAME" "${release_local_ref:-refs/heads/master}:${release_remote_ref:-refs/heads/master}"; then - echo "release: success v${NEW_VERSION}" + echo "release: success v${NEW_VERSION} (release commit already pushed; stopping original push)" exit 1 else echo "release: push failed (log: $RELEASE_LOG)" diff --git a/scripts/build_release.sh b/scripts/build_release.sh index 93c25fc..58523e3 100755 --- a/scripts/build_release.sh +++ b/scripts/build_release.sh @@ -3,6 +3,7 @@ set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" BUILD_DIR="$ROOT_DIR/build" +DERIVED_DATA_DIR="$BUILD_DIR/derived-data" ARTIFACTS_DIR="$ROOT_DIR/dist" SCHEME="iKeyMon" PROJECT="iKeyMon.xcodeproj" @@ -141,18 +142,18 @@ export SPARKLE_APPCAST_OUTPUT "$ROOT_DIR/scripts/sync_version.sh" -rm -rf "$BUILD_DIR" "$ARTIFACTS_DIR" -mkdir -p "$ARTIFACTS_DIR" +rm -rf "$DERIVED_DATA_DIR" "$ARTIFACTS_DIR" +mkdir -p "$BUILD_DIR" "$ARTIFACTS_DIR" xcodebuild \ -project "$ROOT_DIR/$PROJECT" \ -scheme "$SCHEME" \ -configuration Release \ - -derivedDataPath "$BUILD_DIR" \ + -derivedDataPath "$DERIVED_DATA_DIR" \ CODE_SIGNING_ALLOWED=NO \ clean build -APP_PATH="$BUILD_DIR/Build/Products/Release/iKeyMon.app" +APP_PATH="$DERIVED_DATA_DIR/Build/Products/Release/iKeyMon.app" if [[ ! -d "$APP_PATH" ]]; then echo "❌ Failed to find built app at $APP_PATH" exit 1