@@ -21,31 +21,38 @@ jobs:
21
21
uses : step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0
22
22
with :
23
23
egress-policy : audit
24
- - uses : maxim-lobanov/setup-xcode@v1
24
+ - uses : maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0
25
25
with :
26
26
xcode-version : ${{env.XCODE_VERSION}}
27
- - uses : actions/checkout@v3
27
+ - uses : actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
28
28
with :
29
29
fetch-depth : 0
30
30
- name : LLVM cache
31
- uses : actions/cache@v3
31
+ uses : actions/cache@2f8e54208210a422b2efd51efaa6bd6d7ca8920f # v3.4.3
32
32
with :
33
33
path : ./llvm
34
34
key : ${{ hashFiles('download_llvm.sh') }}
35
- - uses : actions/setup-node@v3
35
+ - uses : actions/setup-node@3235b876344d2a9aa001b8d1453c930bba69e610 # v3.9.1
36
36
with :
37
37
node-version : 20
38
38
registry-url : " https://registry.npmjs.org"
39
39
- name : Install Python
40
- uses : actions/setup-python@v4
40
+ uses : actions/setup-python@7f4fc3e22c37d6ff65e88745f38bd3157c663f7c # v4.9.1
41
41
with :
42
42
python-version : " 3"
43
43
- name : Install Dependencies
44
44
run : |
45
45
npm install
46
46
python3 -m pip install --upgrade pip six
47
- brew install cmake
48
- [ ! -f /usr/local/bin/cmake ] && ln -s /usr/local/bin/cmake $(which cmake) || true
47
+ # Ensure CMake is available without conflicting with pinned Homebrew formula
48
+ if ! command -v cmake >/dev/null; then
49
+ brew list cmake || brew install cmake
50
+ fi
51
+ # Some scripts expect cmake at /usr/local/bin; create a shim if needed
52
+ if [ ! -x /usr/local/bin/cmake ]; then
53
+ sudo mkdir -p /usr/local/bin
54
+ sudo ln -sf "$(command -v cmake)" /usr/local/bin/cmake
55
+ fi
49
56
- name : Get Current Version
50
57
run : |
51
58
NPM_VERSION=$(node -e "console.log(require('./package.json').version);")
@@ -65,12 +72,12 @@ jobs:
65
72
- name : Build
66
73
run : npm run build-ios
67
74
- name : Upload npm package artifact
68
- uses : actions/upload-artifact@v4
75
+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
69
76
with :
70
77
name : npm-package
71
78
path : dist/nativescript-ios-${{steps.npm_version_output.outputs.NPM_VERSION}}.tgz
72
79
- name : Upload dSYMs artifact
73
- uses : actions/upload-artifact@v4
80
+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
74
81
with :
75
82
name : NativeScript-dSYMs
76
83
path : dist/dSYMs
@@ -83,28 +90,35 @@ jobs:
83
90
uses : step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0
84
91
with :
85
92
egress-policy : audit
86
- - uses : maxim-lobanov/setup-xcode@v1
93
+ - uses : maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0
87
94
with :
88
95
xcode-version : ${{env.XCODE_VERSION}}
89
- - uses : actions/checkout@v3
96
+ - uses : actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
90
97
- name : LLVM cache
91
- uses : actions/cache@v3
98
+ uses : actions/cache@2f8e54208210a422b2efd51efaa6bd6d7ca8920f # v3.4.3
92
99
with :
93
100
path : ./llvm
94
101
key : ${{ hashFiles('download_llvm.sh') }}
95
- - uses : actions/setup-node@v3
102
+ - uses : actions/setup-node@3235b876344d2a9aa001b8d1453c930bba69e610 # v3.9.1
96
103
with :
97
104
node-version : 20
98
105
- name : Install Python
99
- uses : actions/setup-python@v4
106
+ uses : actions/setup-python@7f4fc3e22c37d6ff65e88745f38bd3157c663f7c # v4.9.1
100
107
with :
101
108
python-version : " 3"
102
109
- name : Install Dependencies
103
110
run : |
104
111
npm install
105
112
python3 -m pip install --upgrade pip six
106
- brew install cmake
107
- [ ! -f /usr/local/bin/cmake ] && ln -s /usr/local/bin/cmake $(which cmake) || true
113
+ # Ensure CMake is available without conflicting with pinned Homebrew formula
114
+ if ! command -v cmake >/dev/null; then
115
+ brew list cmake || brew install cmake
116
+ fi
117
+ # Some scripts expect cmake at /usr/local/bin; create a shim if needed
118
+ if [ ! -x /usr/local/bin/cmake ]; then
119
+ sudo mkdir -p /usr/local/bin
120
+ sudo ln -sf "$(command -v cmake)" /usr/local/bin/cmake
121
+ fi
108
122
brew install chargepoint/xcparse/xcparse
109
123
npm install -g @edusperoni/junit-cli-report-viewer verify-junit-xml
110
124
- name : Prepare
@@ -114,7 +128,7 @@ jobs:
114
128
mkdir -p dist-test
115
129
echo TEST_FOLDER=$(pwd)/dist-test >> $GITHUB_ENV
116
130
- name : Xcode Tests
117
- uses : nick-fields/retry@v2
131
+ uses : nick-fields/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2.9.0
118
132
# try to run the tests with xcpretty. If it fails then try again without xcpretty twice for better log output
119
133
# the xcode tests are a bit flaky and they should never fail on this step, as this step only collects the JS test results as junit xml
120
134
with :
@@ -130,7 +144,7 @@ jobs:
130
144
find $TEST_FOLDER/test-out -name "*junit*.xml" -maxdepth 1 -print0 | xargs -n 1 -0 npx verify-junit-xml
131
145
- name : Archive Test Result Data
132
146
if : always()
133
- uses : actions/upload-artifact@v4
147
+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
134
148
with :
135
149
name : test-results
136
150
path : ${{env.TEST_FOLDER}}/test_results.xcresult
@@ -150,11 +164,11 @@ jobs:
150
164
uses : step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0
151
165
with :
152
166
egress-policy : audit
153
- - uses : actions/setup-node@v3
167
+ - uses : actions/setup-node@3235b876344d2a9aa001b8d1453c930bba69e610 # v3.9.1
154
168
with :
155
169
node-version : 20
156
170
registry-url : " https://registry.npmjs.org"
157
-
171
+ - uses : actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
158
172
with :
159
173
name : npm-package
160
174
path : dist
@@ -180,19 +194,19 @@ jobs:
180
194
uses : step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0
181
195
with :
182
196
egress-policy : audit
183
- - uses : actions/checkout@v3
197
+ - uses : actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
184
198
with :
185
199
fetch-depth : 0
186
- - uses : actions/setup-node@v3
200
+ - uses : actions/setup-node@3235b876344d2a9aa001b8d1453c930bba69e610 # v3.9.1
187
201
with :
188
202
node-version : 20
189
203
- name : Setup
190
204
run : npm install
191
-
205
+ - uses : actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
192
206
with :
193
207
name : npm-package
194
208
path : dist
195
-
209
+ - uses : actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
196
210
with :
197
211
name : NativeScript-dSYMs
198
212
path : dist/dSYMs
@@ -201,8 +215,9 @@ jobs:
201
215
run : find . -maxdepth 1 -name '*.dSYM' -print | xargs -I@ zip -r @.zip @
202
216
- name : Partial Changelog
203
217
run : npx conventional-changelog -p angular -r2 > body.md
204
- - uses : ncipollo/release-action@v1
218
+ - uses : ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1.20.0
205
219
with :
206
220
artifacts : " dist/nativescript-ios-*.tgz,dist/dSYMs/*.zip"
207
221
bodyFile : " body.md"
208
222
prerelease : ${{needs.build.outputs.npm_tag != 'latest'}}
223
+ allowUpdates : true
0 commit comments