Skip to content

Commit 814588f

Browse files
committed
Major refactor of Support scripts
1 parent 84b4547 commit 814588f

File tree

11 files changed

+556
-443
lines changed

11 files changed

+556
-443
lines changed

CHANGELOG.md

Lines changed: 58 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,28 @@
1-
# 1.0.0 - v1.0.0
1+
# CHANGELOG
2+
3+
## 1.0.0 - v1.0.0
4+
25
* d08c413 - chore: Change to use updated package API
36
* 6995bb2 - tech: Update MockServer to be an actor
47
* 2cf3ec4 - docs: Add doc file references to Xcode project
58
* 883b8ee - tech: Set min iOS target to 14.0 & macOS to 11.0
6-
# 0.4.4 - v0.4.4
9+
10+
## 0.4.4 - v0.4.4
11+
712
* 7728901 - chore: Upgrade Pact FFI Library to 0.3.15 (Marko Justinek)
813
* 9ec0d7d - chore: Submodule sync (Marko Justinek)
9-
# 0.4.2 - v0.4.2
14+
15+
## 0.4.2 - v0.4.2
16+
1017
* caaccda - Upgrade libpact_ffi to v0.3.11 (Marko Justinek)
11-
# 0.4.1 - v0.4.1
18+
19+
## 0.4.1 - v0.4.1
20+
1221
* a580bdd - ci: Cancel build with new push (Marko Justinek)
1322
* dc550f9 - fix: Conditional for unsupported import (Marko Justinek)
14-
# 0.4.0 - v0.4.0
23+
24+
## 0.4.0 - v0.4.0
25+
1526
* 19c2c5e - ci: Skip building rust binaries if in cache (Marko Justinek)
1627
* 2b3ce0e - docs: Update README [skip ci] (Marko Justinek)
1728
* 54c6077 - ci: Updates to rust script for pact-reference submodule (Marko Justinek)
@@ -22,14 +33,22 @@
2233
* 6449c75 - ci: Improvements to pipelines (Marko Justinek)
2334
* dea0f7c - tech: Removes the PactSwiftToolbox dependency (#4) (Marko Justinek)
2435
* cdc61c4 - chore: Adds project-level copyright template (Marko Justinek)
25-
# 0.3.8 - v0.3.8
36+
37+
## 0.3.8 - v0.3.8
38+
2639
* 1012993 - bugfix: Invert merge flag (Marko Justinek)
27-
# 0.3.7 - v0.3.7
40+
41+
## 0.3.7 - v0.3.7
42+
2843
* bcfc657 - tech: Adds more logging information when writing contract (Marko Justinek)
29-
# 0.3.6 - v0.3.6
44+
45+
## 0.3.6 - v0.3.6
46+
3047
* df4932d - upgrade: libpact_ffi-v0.3.2 (Marko Justinek)
3148
* 8bb44b5 - feat: Merge interactions with existing Pact contract (Marko Justinek)
32-
# 0.3.5 - v0.3.5
49+
50+
## 0.3.5 - v0.3.5
51+
3352
* d03409c - Upgrade to pact-rust v0.2.3 (Marko Justinek)
3453
* d932b02 - v0.3.5 (Marko Justinek)
3554
* e0dac45 - chore: Refactor release script (Marko Justinek)
@@ -38,39 +57,27 @@
3857
* 84cb880 - chore: Refactor the release script (Marko Justinek)
3958
* 75b6d8f - v0.3.5 (Marko Justinek)
4059
* 464406a - tech: Add a check for Xcode version when building XCFramework (Marko Justinek)
41-
# 0.3.5 - v0.3.5
42-
* e0dac45 - chore: Refactor release script (Marko Justinek)
43-
* 5f007f5 - chore: Recompiles pact_ffi-0.2.3 into XCFramework binaries (Marko Justinek)
44-
* 523584a - chore: Refactor the build_xcframwork script (Marko Justinek)
45-
* 84cb880 - chore: Refactor the release script (Marko Justinek)
46-
* 75b6d8f - v0.3.5 (Marko Justinek)
47-
* 464406a - tech: Add a check for Xcode version when building XCFramework (Marko Justinek)
48-
# 0.3.5 - v0.3.5
49-
* 464406a - tech: Add a check for Xcode version when building XCFramework (Marko Justinek)
50-
# 0.3.4 - v0.3.4
60+
61+
## 0.3.4 - v0.3.4
62+
5163
* fa4e952 - chore: Recompiles pact_ffi for v0.0.3 with swiftlang-1205.0.28.2 clang-1205.0.19.57 (Marko Justinek)
52-
# 0.3.3 - v0.3.3
64+
65+
## 0.3.3 - v0.3.3
66+
5367
* a0c50de - chore: Recompiles pact_ffi for v0.0.3 (Marko Justinek)
5468
* 27fc482 - doco: Add description for tag in build_rust_dependencies script (Marko Justinek)
55-
# 0.3.2 - v0.3.2
69+
70+
## 0.3.2 - v0.3.2
71+
5672
* 3eed423 - chore: Rebuild XCFramework (Marko Justinek)
5773
* c22e5e6 - feat: Initialize with directory path (Marko Justinek)
58-
# 0.3.1 - v0.3.1
74+
75+
## 0.3.1 - v0.3.1
76+
5977
* 367764f - fix: Returns a valid port on Linux (Marko Justinek)
60-
# 0.3.0 - v0.3.0
61-
* 0e81924 - chore: Upgrade libpact_ffi to v0.0.2 (Marko Justinek)
62-
* 0ee3d6e - tech: Add a reusable build_test script (Marko Justinek)
63-
* aabac43 - chore: Support scripts include license header (Marko Justinek)
64-
* 9e773bb - refactor: Protocolize ProviderVerifier (Marko Justinek)
65-
* e1edc69 - refactor: Move the Verifier models out into PactSwift (Marko Justinek)
66-
* e067ea5 - feat: Adds more verification options (Marko Justinek)
67-
* 3c195ec - refactor: Namespacing provider verification options (Marko Justinek)
68-
* 27f3650 - feature: MVP for provider verification (Marko Justinek)
69-
* d48746a - feature: Base Verifier interface and models (Marko Justinek)
70-
* d29a1b0 - tech: SwiftLint source files (Marko Justinek)
71-
* 9579223 - tech: Limit the CI builds to a set of branches (Marko Justinek)
72-
* 0a8c00b - refactor: Clean up MockServer a bit (Marko Justinek)
73-
# 0.3.0 - v0.3.0
78+
79+
## 0.3.0 - v0.3.0
80+
7481
* 0e81924 - chore: Upgrade libpact_ffi to v0.0.2 (Marko Justinek)
7582
* 0ee3d6e - tech: Add a reusable build_test script (Marko Justinek)
7683
* aabac43 - chore: Support scripts include license header (Marko Justinek)
@@ -83,17 +90,27 @@
8390
* d29a1b0 - tech: SwiftLint source files (Marko Justinek)
8491
* 9579223 - tech: Limit the CI builds to a set of branches (Marko Justinek)
8592
* 0a8c00b - refactor: Clean up MockServer a bit (Marko Justinek)
86-
# 0.2.5 - v0.2.5
93+
94+
## 0.2.5 - v0.2.5
95+
8796
* accd74e - fix: Writing Pact that includes strings with escape characters (Marko Justinek)
88-
# 0.2.4 - v0.2.4
97+
98+
## 0.2.4 - v0.2.4
99+
89100
* 073d2db - fix: Use same unusedPort api (Marko Justinek)
90101
* 57ee570 - feat: Initializes on random port (Marko Justinek)
91-
# 0.2.3 - v0.2.3
102+
103+
## 0.2.3 - v0.2.3
104+
92105
* 73622c6 - feat: Each test runs on own port (Marko Justinek)
93106
* 0734852 - refactor: Shutdown mock server on verify (Marko Justinek)
94-
# 0.2.2 - Bugfix
107+
108+
## 0.2.2 - Bugfix
109+
95110
* 1394ff8 - fix: Defines a port at MockServer init (Marko Justinek)
96-
# 0.2.1 - Linux support
111+
112+
## 0.2.1 - Linux support
113+
97114
* 904a874 - chore: Update dependency verisons (Marko Justinek)
98115
* 8a70a40 - chore: Revert dependency name change (Marko Justinek)
99116
* 8b7338a - chore: Rename PactMockSerer to PactFFI (Marko Justinek)

Support/Scripts/build_rust_dependencies renamed to Support/Scripts/CI/build_rust_dependencies

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ LIBPACT_FFI_DIR="${WORKSPACE}/pact-reference/rust/pact_ffi"
3434
LIBPACT_FFI_VERSION=$(awk 'NR==1 {print; exit}' libpact_ffi.version)
3535

3636
# "import"
37-
source "$SOURCE_DIR/utils.sh"
38-
source "$SOURCE_DIR/configure_rust_tools"
37+
source "$SOURCE_DIR/../utils.sh"
38+
source "$SOURCE_DIR/../Config/configure_rust_tools.sh"
3939

4040
#######################
4141
# Pre-requisite #
Lines changed: 37 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#!/usr/bin/env bash
2+
# shellcheck disable=SC1091
23

34
# PactSwiftMockService
45
#
@@ -26,8 +27,11 @@ set -o pipefail
2627
IPHONEOS_DEPLOYMENT_TARGET=16.0
2728
MACOSX_DEPLOYMENT_TARGET=13.0
2829

29-
TMP_DIR="../../.tmp/build-xcframework"
30+
BUILD_XCFRAMEWORK_SOURCE_DIR="${BASH_SOURCE[0]%/*}"
31+
32+
TMP_DIR="${BUILD_XCFRAMEWORK_SOURCE_DIR}/../../../.tmp/build-xcframework"
3033
PRODUCT_NAME="PactSwiftMockServer"
34+
source "${BUILD_XCFRAMEWORK_SOURCE_DIR}/../utils.sh"
3135

3236
# Only use xcbeautify if it can be found in path.
3337
XCBEAUTIFY=$(command -v xcbeautify || command -v cat)
@@ -40,78 +44,70 @@ XCBEAUTIFY=$(command -v xcbeautify || command -v cat)
4044
# Otherwise a _concurrency fatal issue will be raised if PactSwiftMockSerer is
4145
# used in a project built with Xcode 12.x
4246

43-
echo "⚠️ Checking for the right Xcode tools..."
44-
xcode-select -p && xcode-select -v
45-
46-
echo "🚨 Are you running this using Xcode 16.x tools!?"
47-
select yn in "Yes" "No"; do
48-
case $yn in
49-
Yes) break;;
50-
No) exit 1;;
51-
esac
52-
done
47+
check_xcode
5348

5449
# Setup
55-
56-
echo "ℹ️ Looking for ${PRODUCT_NAME}.xcodeproj"
57-
if [ ! -d "${PRODUCT_NAME}.xcodeproj" ]; then
58-
echo "🚨 Run this in the same folder as \"${PRODUCT_NAME}.xcodeproj\"."
50+
echo "ℹ️ Looking for $PRODUCT_NAME.xcodeproj"
51+
if [ ! -d "$PRODUCT_NAME.xcodeproj" ]; then
52+
echo "🚨 Run this in the same folder as \"$PRODUCT_NAME.xcodeproj\"!"
53+
echo "Your current location is: $(pwd)"
5954
exit 1
6055
fi
6156

62-
echo "ℹ️ Removing existing XCFramework"
63-
rm -fr "./${PRODUCT_NAME}.xcframework"
64-
echo "👍 Removed existing XCFramework"
57+
echo "ℹ️ Removing deprecated XCFramework..."
58+
rm -fr "./$PRODUCT_NAME.xcframework"
59+
echo "👍 Removed deprecated XCFramework"
6560

66-
echo "ℹ️ Preparing ${TMP_DIR} folder"
67-
mkdir -p $TMP_DIR
68-
rm -fr $TMP_DIR
61+
echo "ℹ️ Setting up $TMP_DIR folder"
62+
rm -fr "$TMP_DIR"
63+
mkdir -p "$TMP_DIR"
6964

7065
# iOS
7166

7267
echo "🏗 Building for iOS..."
7368
xcodebuild archive \
74-
-sdk iphoneos IPHONEOS_DEPLOYMENT_TARGET=${IPHONEOS_DEPLOYMENT_TARGET} \
69+
-sdk iphoneos IPHONEOS_DEPLOYMENT_TARGET=$IPHONEOS_DEPLOYMENT_TARGET \
7570
-arch arm64 \
76-
-scheme "${PRODUCT_NAME}-iphoneos" \
77-
-archivePath "${TMP_DIR}/iphoneos/${PRODUCT_NAME}.xcarchive" \
71+
-scheme "$PRODUCT_NAME-iphoneos" \
72+
-archivePath "$TMP_DIR/iphoneos/$PRODUCT_NAME.xcarchive" \
7873
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
79-
SKIP_INSTALL=NO | ${XCBEAUTIFY}
80-
81-
echo "👍 Framework for arm64 device built"
74+
SKIP_INSTALL=NO | $XCBEAUTIFY
75+
echo "👍 Framework for physical arm64 device built"
8276

8377
echo "🏗 Building for iOS Simulator..."
8478
xcodebuild archive \
85-
-sdk iphonesimulator IPHONEOS_DEPLOYMENT_TARGET=${IPHONEOS_DEPLOYMENT_TARGET} \
86-
-arch x86_64 -arch arm64 \
87-
-scheme "${PRODUCT_NAME}-iOS" \
88-
-archivePath "${TMP_DIR}/iphonesimulator/${PRODUCT_NAME}.xcarchive" \
79+
-sdk iphonesimulator IPHONEOS_DEPLOYMENT_TARGET=$IPHONEOS_DEPLOYMENT_TARGET \
80+
-arch x86_64 \
81+
-arch arm64 \
82+
-scheme "$PRODUCT_NAME-iOS" \
83+
-archivePath "$TMP_DIR/iphonesimulator/$PRODUCT_NAME.xcarchive" \
8984
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
90-
SKIP_INSTALL=NO | ${XCBEAUTIFY}
85+
SKIP_INSTALL=NO | $XCBEAUTIFY
9186
echo "👍 Framework for iOS Simulator built for x86_64 and arm64 architecture"
9287

9388
# macOS
9489

9590
echo "🏗 Building for macOS..."
9691
xcodebuild archive \
97-
-sdk macosx MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} \
98-
-arch x86_64 -arch arm64 \
99-
-scheme "${PRODUCT_NAME}-macOS" \
100-
-archivePath "${TMP_DIR}/macos/${PRODUCT_NAME}.xcarchive" \
92+
-sdk macosx MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET \
93+
-arch x86_64 \
94+
-arch arm64 \
95+
-scheme "$PRODUCT_NAME-macOS" \
96+
-archivePath "$TMP_DIR/macos/$PRODUCT_NAME.xcarchive" \
10197
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
102-
SKIP_INSTALL=NO | ${XCBEAUTIFY}
98+
SKIP_INSTALL=NO | $XCBEAUTIFY
10399
echo "👍 Framework for macOS built for x86_64 and arm64 architectures"
104100

105101
# XCFramework
106102

107103
echo "🏗 Building XCFramework..."
108104
xcodebuild -create-xcframework -output ./$PRODUCT_NAME.xcframework \
109-
-framework $TMP_DIR/iphoneos/$PRODUCT_NAME.xcarchive/Products/Library/Frameworks/$PRODUCT_NAME.framework \
110-
-framework $TMP_DIR/iphonesimulator/$PRODUCT_NAME.xcarchive/Products/Library/Frameworks/$PRODUCT_NAME.framework \
111-
-framework $TMP_DIR/macos/$PRODUCT_NAME.xcarchive/Products/Library/Frameworks/$PRODUCT_NAME.framework
105+
-framework "$TMP_DIR"/iphoneos/$PRODUCT_NAME.xcarchive/Products/Library/Frameworks/"$PRODUCT_NAME".framework \
106+
-framework "$TMP_DIR"/iphonesimulator/$PRODUCT_NAME.xcarchive/Products/Library/Frameworks/"$PRODUCT_NAME".framework \
107+
-framework "$TMP_DIR"/macos/$PRODUCT_NAME.xcarchive/Products/Library/Frameworks/"$PRODUCT_NAME".framework
112108

113109
# Cleanup
114110
echo "ℹ️ Removing $TMP_DIR folder..."
115-
rm -fr $TMP_DIR
111+
rm -fr "$TMP_DIR"
116112

117113
echo "🎉 Done!"

Support/Scripts/CI/bump_version_number

Lines changed: 0 additions & 76 deletions
This file was deleted.

0 commit comments

Comments
 (0)