1+ name : CocoaPods Lint
2+
3+ # Trigger the workflow on push and pull request events
4+ on :
5+ push :
6+ branches : [ main, master, develop ]
7+ pull_request :
8+ branches : [ main, master, develop ]
9+
10+ # Cancel any in-progress workflow runs for the same branch
11+ concurrency :
12+ group : ${{ github.workflow }}-${{ github.ref }}
13+ cancel-in-progress : true
14+
15+ jobs :
16+ cocoapods-lint :
17+ name : Pod Lib Lint
18+ runs-on : macos-latest
19+
20+ steps :
21+ - name : Checkout Repository
22+ uses : actions/checkout@v4
23+
24+ - name : Setup Ruby
25+ uses : ruby/setup-ruby@v1
26+ with :
27+ ruby-version : ' 3.0'
28+ bundler-cache : true
29+
30+ - name : Install CocoaPods
31+ run : |
32+ gem install cocoapods --no-document
33+ pod --version
34+
35+ - name : Setup Xcode
36+ uses : maxim-lobanov/setup-xcode@v1
37+ with :
38+ xcode-version : latest-stable
39+
40+ - name : Show Xcode Version
41+ run : xcodebuild -version
42+
43+ - name : Update CocoaPods Repo
44+ run : pod repo update
45+
46+ - name : Pod Lib Lint - iOS
47+ run : |
48+ echo "🔍 Running pod lib lint for iOS..."
49+ pod lib lint EFQRCode.podspec \
50+ --platforms=ios \
51+ --allow-warnings \
52+ --verbose \
53+ --fail-fast
54+
55+ - name : Pod Lib Lint - macOS
56+ run : |
57+ echo "🔍 Running pod lib lint for macOS..."
58+ pod lib lint EFQRCode.podspec \
59+ --platforms=osx \
60+ --allow-warnings \
61+ --verbose \
62+ --fail-fast
63+
64+ - name : Pod Lib Lint - tvOS
65+ run : |
66+ echo "🔍 Running pod lib lint for tvOS..."
67+ pod lib lint EFQRCode.podspec \
68+ --platforms=tvos \
69+ --allow-warnings \
70+ --verbose \
71+ --fail-fast
72+
73+ - name : Pod Lib Lint - watchOS
74+ run : |
75+ echo "🔍 Running pod lib lint for watchOS..."
76+ pod lib lint EFQRCode.podspec \
77+ --platforms=watchos \
78+ --allow-warnings \
79+ --verbose \
80+ --fail-fast
81+
82+ - name : Pod Lib Lint - visionOS
83+ run : |
84+ echo "🔍 Running pod lib lint for visionOS..."
85+ pod lib lint EFQRCode.podspec \
86+ --platforms=visionos \
87+ --allow-warnings \
88+ --verbose \
89+ --fail-fast
90+ continue-on-error : true # visionOS support might not be available in all Xcode versions
91+
92+ - name : Pod Lib Lint - All Platforms
93+ run : |
94+ echo "🔍 Running comprehensive pod lib lint for all platforms..."
95+ pod lib lint EFQRCode.podspec \
96+ --allow-warnings \
97+ --verbose \
98+ --fail-fast
99+
100+ - name : Pod Spec Lint
101+ run : |
102+ echo "🔍 Running pod spec lint..."
103+ pod spec lint EFQRCode.podspec \
104+ --allow-warnings \
105+ --verbose \
106+ --fail-fast
107+
108+ - name : Success Notification
109+ if : success()
110+ run : |
111+ echo "✅ All CocoaPods lint checks passed successfully!"
112+ echo "🎉 The pod is ready for publishing."
113+
114+ - name : Failure Notification
115+ if : failure()
116+ run : |
117+ echo "❌ CocoaPods lint checks failed!"
118+ echo "🔧 Please fix the issues before merging the PR."
119+ echo "📋 Check the logs above for detailed error information."
120+ exit 1
0 commit comments