Skip to content

Commit df07b25

Browse files
committed
chore: switch to an XcodeGen project file
Change-Id: I753a7652cdc730157ae7f8bc036338bae5e6b54b Signed-off-by: Thomas Kosiewski <[email protected]>
1 parent 06b4c16 commit df07b25

File tree

16 files changed

+888
-1976
lines changed

16 files changed

+888
-1976
lines changed

Diff for: .github/actions/harden-checkout-devshell/action.yaml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: "Harden checkout with Nix shell"
2+
description: "This action hardenes the runner, checks out the repo and sets up a nix devshell environment"
3+
runs:
4+
using: "composite"
5+
steps:
6+
- name: Harden Runner
7+
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
8+
with:
9+
egress-policy: audit
10+
11+
- name: Checkout
12+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
13+
with:
14+
fetch-depth: 1
15+
16+
- name: Setup Nix
17+
uses: DeterminateSystems/nix-installer-action@e50d5f73bfe71c2dd0aa4218de8f4afa59f8f81d # v16
18+
19+
- name: Setup GHA Nix cache
20+
uses: DeterminateSystems/magic-nix-cache-action@6221693898146dc97e38ad0e013488a16477a4c4 # v9
21+
22+
- name: Enter devshell
23+
uses: nicknovitski/nix-develop@9be7cfb4b10451d3390a75dc18ad0465bed4932a # v1.2.1

Diff for: .github/workflows/ci.yml

+15-26
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ on:
1010
paths-ignore:
1111
- "README.md"
1212

13-
1413
permissions:
1514
contents: read
1615

@@ -19,36 +18,26 @@ jobs:
1918
name: test
2019
runs-on: ${{ github.repository_owner == 'coder' && 'depot-macos-latest' || 'macos-latest'}}
2120
steps:
22-
- name: Checkout
23-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
24-
with:
25-
fetch-depth: 1
26-
- name: Switch XCode Version
27-
uses: maxim-lobanov/setup-xcode@v1
28-
with:
29-
xcode-version: '16.0.0'
30-
- run: |
31-
make test
21+
- name: Hardened Checkout with devshell
22+
uses: ./.github/actions/harden-checkout-devshell
23+
24+
- run: make
25+
26+
- run: make test
27+
3228
format:
3329
name: fmt
3430
runs-on: ${{ github.repository_owner == 'coder' && 'depot-macos-latest' || 'macos-latest'}}
3531
steps:
36-
- name: Checkout
37-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
38-
with:
39-
fetch-depth: 1
40-
- run: |
41-
make fmt
32+
- name: Hardened Checkout with devshell
33+
uses: ./.github/actions/harden-checkout-devshell
34+
35+
- run: make fmt
4236
lint:
4337
name: lint
4438
runs-on: ${{ github.repository_owner == 'coder' && 'depot-macos-latest' || 'macos-latest'}}
4539
steps:
46-
- name: Checkout
47-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
48-
with:
49-
fetch-depth: 1
50-
- name: Install Swiftlint
51-
run: |
52-
brew install swiftlint
53-
- run: |
54-
make lint
40+
- name: Hardened Checkout with devshell
41+
uses: ./.github/actions/harden-checkout-devshell
42+
43+
- run: make lint

Diff for: .gitignore

+290-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,293 @@
1-
# Xcode specifics
1+
# Created by https://www.toptal.com/developers/gitignore/api/xcode,jetbrains,macos,direnv,swift,swiftpm,objective-c
2+
# Edit at https://www.toptal.com/developers/gitignore?templates=xcode,jetbrains,macos,direnv,swift,swiftpm,objective-c
3+
4+
### direnv ###
5+
.direnv
6+
.envrc
7+
8+
### JetBrains ###
9+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
10+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
11+
12+
# User-specific stuff
13+
.idea/**/workspace.xml
14+
.idea/**/tasks.xml
15+
.idea/**/usage.statistics.xml
16+
.idea/**/dictionaries
17+
.idea/**/shelf
18+
19+
# AWS User-specific
20+
.idea/**/aws.xml
21+
22+
# Generated files
23+
.idea/**/contentModel.xml
24+
25+
# Sensitive or high-churn files
26+
.idea/**/dataSources/
27+
.idea/**/dataSources.ids
28+
.idea/**/dataSources.local.xml
29+
.idea/**/sqlDataSources.xml
30+
.idea/**/dynamic.xml
31+
.idea/**/uiDesigner.xml
32+
.idea/**/dbnavigator.xml
33+
34+
# Gradle
35+
.idea/**/gradle.xml
36+
.idea/**/libraries
37+
38+
# Gradle and Maven with auto-import
39+
# When using Gradle or Maven with auto-import, you should exclude module files,
40+
# since they will be recreated, and may cause churn. Uncomment if using
41+
# auto-import.
42+
# .idea/artifacts
43+
# .idea/compiler.xml
44+
# .idea/jarRepositories.xml
45+
# .idea/modules.xml
46+
# .idea/*.iml
47+
# .idea/modules
48+
# *.iml
49+
# *.ipr
50+
51+
# CMake
52+
cmake-build-*/
53+
54+
# Mongo Explorer plugin
55+
.idea/**/mongoSettings.xml
56+
57+
# File-based project format
58+
*.iws
59+
60+
# IntelliJ
61+
out/
62+
63+
# mpeltonen/sbt-idea plugin
64+
.idea_modules/
65+
66+
# JIRA plugin
67+
atlassian-ide-plugin.xml
68+
69+
# Cursive Clojure plugin
70+
.idea/replstate.xml
71+
72+
# SonarLint plugin
73+
.idea/sonarlint/
74+
75+
# Crashlytics plugin (for Android Studio and IntelliJ)
76+
com_crashlytics_export_strings.xml
77+
crashlytics.properties
78+
crashlytics-build.properties
79+
fabric.properties
80+
81+
# Editor-based Rest Client
82+
.idea/httpRequests
83+
84+
# Android studio 3.1+ serialized cache file
85+
.idea/caches/build_file_checksums.ser
86+
87+
### JetBrains Patch ###
88+
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
89+
90+
# *.iml
91+
# modules.xml
92+
# .idea/misc.xml
93+
# *.ipr
94+
95+
# Sonarlint plugin
96+
# https://plugins.jetbrains.com/plugin/7973-sonarlint
97+
.idea/**/sonarlint/
98+
99+
# SonarQube Plugin
100+
# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
101+
.idea/**/sonarIssues.xml
102+
103+
# Markdown Navigator plugin
104+
# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
105+
.idea/**/markdown-navigator.xml
106+
.idea/**/markdown-navigator-enh.xml
107+
.idea/**/markdown-navigator/
108+
109+
# Cache file creation bug
110+
# See https://youtrack.jetbrains.com/issue/JBR-2257
111+
.idea/$CACHE_FILE$
112+
113+
# CodeStream plugin
114+
# https://plugins.jetbrains.com/plugin/12206-codestream
115+
.idea/codestream.xml
116+
117+
# Azure Toolkit for IntelliJ plugin
118+
# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
119+
.idea/**/azureSettings.xml
120+
121+
### macOS ###
122+
# General
2123
.DS_Store
3-
UserInterfaceState.xcuserstate
124+
.AppleDouble
125+
.LSOverride
126+
127+
# Icon must end with two \r
128+
Icon
129+
130+
131+
# Thumbnails
132+
._*
133+
134+
# Files that might appear in the root of a volume
135+
.DocumentRevisions-V100
136+
.fseventsd
137+
.Spotlight-V100
138+
.TemporaryItems
139+
.Trashes
140+
.VolumeIcon.icns
141+
.com.apple.timemachine.donotpresent
142+
143+
# Directories potentially created on remote AFP share
144+
.AppleDB
145+
.AppleDesktop
146+
Network Trash Folder
147+
Temporary Items
148+
.apdisk
149+
150+
### macOS Patch ###
151+
# iCloud generated files
152+
*.icloud
153+
154+
### Objective-C ###
155+
# Xcode
156+
#
157+
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
158+
159+
## User settings
4160
xcuserdata/
5161

6-
# JetBrains
7-
.idea/
162+
## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
163+
*.xcscmblueprint
164+
*.xccheckout
165+
166+
## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
167+
build/
168+
DerivedData/
169+
*.moved-aside
170+
*.pbxuser
171+
!default.pbxuser
172+
*.mode1v3
173+
!default.mode1v3
174+
*.mode2v3
175+
!default.mode2v3
176+
*.perspectivev3
177+
!default.perspectivev3
178+
179+
## Obj-C/Swift specific
180+
*.hmap
181+
182+
## App packaging
183+
*.ipa
184+
*.dSYM.zip
185+
*.dSYM
186+
187+
# CocoaPods
188+
# We recommend against adding the Pods directory to your .gitignore. However
189+
# you should judge for yourself, the pros and cons are mentioned at:
190+
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
191+
# Pods/
192+
# Add this line if you want to avoid checking in source code from the Xcode workspace
193+
# *.xcworkspace
194+
195+
# Carthage
196+
# Add this line if you want to avoid checking in source code from Carthage dependencies.
197+
# Carthage/Checkouts
198+
199+
Carthage/Build/
200+
201+
# fastlane
202+
# It is recommended to not store the screenshots in the git repo.
203+
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
204+
# For more information about the recommended setup visit:
205+
# https://docs.fastlane.tools/best-practices/source-control/#source-control
206+
207+
fastlane/report.xml
208+
fastlane/Preview.html
209+
fastlane/screenshots/**/*.png
210+
fastlane/test_output
211+
212+
# Code Injection
213+
# After new code Injection tools there's a generated folder /iOSInjectionProject
214+
# https://github.com/johnno1962/injectionforxcode
215+
216+
iOSInjectionProject/
217+
218+
### Objective-C Patch ###
219+
220+
### Swift ###
221+
# Xcode
222+
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
223+
224+
225+
226+
227+
228+
229+
## Playgrounds
230+
timeline.xctimeline
231+
playground.xcworkspace
232+
233+
# Swift Package Manager
234+
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
235+
Packages/
236+
Package.pins
237+
Package.resolved
238+
*.xcodeproj
239+
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
240+
# hence it is not needed unless you have added a package configuration file to your project
241+
# .swiftpm
242+
243+
.build/
244+
245+
# CocoaPods
246+
# We recommend against adding the Pods directory to your .gitignore. However
247+
# you should judge for yourself, the pros and cons are mentioned at:
248+
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
249+
# Pods/
250+
# Add this line if you want to avoid checking in source code from the Xcode workspace
251+
*.xcworkspace
252+
253+
# Carthage
254+
# Add this line if you want to avoid checking in source code from Carthage dependencies.
255+
# Carthage/Checkouts
256+
257+
258+
# Accio dependency management
259+
Dependencies/
260+
.accio/
261+
262+
# fastlane
263+
# It is recommended to not store the screenshots in the git repo.
264+
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
265+
# For more information about the recommended setup visit:
266+
# https://docs.fastlane.tools/best-practices/source-control/#source-control
267+
268+
269+
# Code Injection
270+
# After new code Injection tools there's a generated folder /iOSInjectionProject
271+
# https://github.com/johnno1962/injectionforxcode
272+
273+
274+
### SwiftPM ###
275+
Packages
276+
xcuserdata
277+
*.xcodeproj
278+
279+
280+
### Xcode ###
281+
282+
## Xcode 8 and earlier
283+
284+
### Xcode Patch ###
285+
*.xcodeproj/*
286+
!*.xcodeproj/project.pbxproj
287+
!*.xcodeproj/xcshareddata/
288+
!*.xcodeproj/project.xcworkspace/
289+
!*.xcworkspace/contents.xcworkspacedata
290+
/*.gcno
291+
**/xcshareddata/WorkspaceSettings.xcsettings
292+
293+
# End of https://www.toptal.com/developers/gitignore/api/xcode,jetbrains,macos,direnv,swift,swiftpm,objective-c

0 commit comments

Comments
 (0)