Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
280 commits
Select commit Hold shift + click to select a range
a5927b0
Update AssetCatalog example
tomlokhorst Jul 22, 2022
d09d655
Generate path in ImageResource name
tomlokhorst Jul 22, 2022
f0d4480
Update struct generation
tomlokhorst Jul 22, 2022
201827d
Add Font generation
tomlokhorst Jul 22, 2022
494ac6a
Generate segues
tomlokhorst Jul 22, 2022
ecbabef
Start work on storyboards
tomlokhorst Jul 22, 2022
05c6d40
Generate storyboards
tomlokhorst Jul 22, 2022
e59963f
Move Color and Asset to top level
tomlokhorst Jul 22, 2022
3e42f67
Add Color and Data resource generator
tomlokhorst Jul 23, 2022
85280e4
Work on file generator
tomlokhorst Jul 23, 2022
d2d4783
Cleanup
tomlokhorst Jul 23, 2022
5598fc9
Add accessibility identifier generator
tomlokhorst Jul 23, 2022
61e66ba
Add plist generator
tomlokhorst Jul 24, 2022
5441371
Add reuse identifier generator
tomlokhorst Jul 24, 2022
ccf060f
Add nib generator
tomlokhorst Jul 24, 2022
370853c
Work on string generator
tomlokhorst Jul 24, 2022
318d1cc
Add callAsFunction examples for StringResources
tomlokhorst Jul 24, 2022
3efa351
Add project parsing
tomlokhorst Jul 25, 2022
2a52c7f
Add Project struct in Parsers
tomlokhorst Jul 29, 2022
4ddb68d
Work on string generation
tomlokhorst Jul 29, 2022
c422a19
Use localeDescription instead of language
tomlokhorst Jul 29, 2022
4ad264b
Work on String generation
tomlokhorst Jul 29, 2022
3273932
Work on custom bundle
tomlokhorst Jul 29, 2022
d63424c
Add integrations for Image/String
tomlokhorst Jul 30, 2022
3bd78ec
Add Segue integrations
tomlokhorst Jul 30, 2022
62d57db
Work on storyboard integrations
tomlokhorst Jul 30, 2022
0f9ea84
Add Image/Data/Color integrations
tomlokhorst Jul 31, 2022
206c885
Work on storyboard view controllers
tomlokhorst Jul 31, 2022
2250121
Print data struct
tomlokhorst Jul 31, 2022
3703e8f
Update comments
tomlokhorst Jul 31, 2022
1b009e4
Generate info and entitlements
tomlokhorst Jul 31, 2022
64ac822
R.file generation
tomlokhorst Jul 31, 2022
03c4924
Accessibility id generation
tomlokhorst Jul 31, 2022
c27eb8f
Nib generation
tomlokhorst Jul 31, 2022
f81c90d
Add reuseIdentifier integrations
tomlokhorst Jul 31, 2022
dbea298
Add deprecated preferredLanguages string functions
tomlokhorst Jul 31, 2022
ddcc014
Work on CLI
tomlokhorst Sep 27, 2022
ce23941
basename + extension in FileResource
tomlokhorst Sep 27, 2022
643fb5b
Implement access-level
tomlokhorst Sep 27, 2022
8ff0247
Work on code generation
tomlokhorst Sep 27, 2022
17ac072
Generate warnings for empty accessibility identifiers
tomlokhorst Sep 30, 2022
8c817ad
Make bundle fields for resources non-optionals
tomlokhorst Sep 30, 2022
0d8f10c
ImageResource+Integrations
tomlokhorst Oct 3, 2022
3afbdba
Collect all module references
tomlokhorst Oct 6, 2022
f825d30
Implement imports
tomlokhorst Oct 10, 2022
5352bf8
Add Font validation
tomlokhorst Oct 11, 2022
fb20cdf
Add validate functions
tomlokhorst Oct 11, 2022
4ea7274
Update example tests
tomlokhorst Oct 12, 2022
be50f85
Generate warnings
tomlokhorst Oct 12, 2022
2482d4b
Update Example projects
tomlokhorst Oct 12, 2022
78f93eb
Update generated warnings
tomlokhorst Oct 12, 2022
24e634b
Log unify warning
tomlokhorst Oct 12, 2022
fc3ad23
Only generate inits for public
tomlokhorst Oct 14, 2022
53311ba
Unify localizations of nibs
tomlokhorst Oct 14, 2022
035017c
No (erroneous) warnings about validate function
tomlokhorst Oct 15, 2022
20bb887
Unify localizations of storyboards
tomlokhorst Oct 15, 2022
fc12e63
Unify Sotryboards and Segues
tomlokhorst Oct 17, 2022
fc6a919
Implemented deployment targets for nibs and storyboards
tomlokhorst Oct 17, 2022
2c7996b
Move unification functions to RswiftResources
tomlokhorst Oct 18, 2022
4c1d714
Unify view controllers in storyboard by id
tomlokhorst Oct 18, 2022
e1ccdbd
Make cmd options optional
tomlokhorst Oct 19, 2022
6c4c145
Start on SPM plugin
tomlokhorst Oct 22, 2022
8db3792
Don't hardcode UIFont in validation function
tomlokhorst Oct 24, 2022
23bf330
Move public modifiers
tomlokhorst Oct 24, 2022
2b29d7b
Add bundle to FontResource
tomlokhorst Oct 25, 2022
c961199
Work on plugin
tomlokhorst Oct 25, 2022
8ca249b
Update Plugin code
tomlokhorst Oct 25, 2022
68a2d58
Add additionalModuleReferences to Struct
tomlokhorst Oct 27, 2022
83e71c1
Remove legacy code
tomlokhorst Oct 27, 2022
82deeef
Update example storyboards
tomlokhorst Oct 31, 2022
18bf2d7
Implement writeIfChanged
tomlokhorst Oct 31, 2022
fbee435
Generate knownAssetTags as struct
tomlokhorst Nov 3, 2022
142be28
Update Plugin
tomlokhorst Nov 4, 2022
866a003
Indent package
tomlokhorst Nov 4, 2022
b22ee70
Default to access level public in plugin
tomlokhorst Nov 4, 2022
798ba70
Add command plugin
tomlokhorst Nov 6, 2022
a8d0884
Add additional module reference
tomlokhorst Nov 7, 2022
9ec3a79
Move RswiftCore to App
tomlokhorst Nov 7, 2022
598e8c9
Add ModifyXcodePackages command
tomlokhorst Nov 7, 2022
7a2d217
Update podspec
tomlokhorst Nov 7, 2022
9a97e91
Bump year
tomlokhorst Oct 28, 2022
70b461a
Update R.swift.podspec
tomlokhorst Oct 28, 2022
f0e30c5
Update release.yml
tomlokhorst Oct 28, 2022
efc600f
Include source code in archive zip
tomlokhorst Nov 7, 2022
25e8bad
Update release.yml
tomlokhorst Nov 7, 2022
62eeae1
Run workflow on Xcode 14
tomlokhorst Nov 7, 2022
d65782e
Update release.yml
tomlokhorst Nov 7, 2022
dfa2508
Update workflows
tomlokhorst Nov 7, 2022
3974e71
Disable watchOS from podspec
tomlokhorst Nov 7, 2022
dd512da
Update paths in workflows
tomlokhorst Nov 8, 2022
95f8700
Update path
tomlokhorst Nov 8, 2022
0b0c6ef
Comment out variableValue
tomlokhorst Nov 8, 2022
3cea644
Always import RswiftResources in generated file
tomlokhorst Nov 9, 2022
3dec783
Update example projects
tomlokhorst Nov 9, 2022
2b9e37d
Update tests
tomlokhorst Nov 10, 2022
f417bee
Move LocalizedStringApp to Examples
tomlokhorst Nov 10, 2022
edab03e
Use IndexingIterator in generated code, instead of some IteratorProtocol
tomlokhorst Nov 10, 2022
4abc114
Update tests
tomlokhorst Nov 10, 2022
2ceae8c
Update minimum deployment targets
tomlokhorst Nov 10, 2022
77010ad
Update supported platforms
tomlokhorst Nov 10, 2022
7be0210
Cleanup
tomlokhorst Nov 11, 2022
6889c14
Update documentation
tomlokhorst Nov 13, 2022
c5e4525
Update documentation
tomlokhorst Nov 13, 2022
68d1a1d
CLI argument import
tomlokhorst Nov 13, 2022
37e1e03
Update README.md
tomlokhorst Oct 28, 2022
c265d6a
Update QandA doc
9race Apr 2, 2021
7b82cb0
Minor Update in QandA doc
9race Apr 2, 2021
275747d
Extensions that work in Xcode 14
tomlokhorst Nov 14, 2022
741a856
Made developmentRegion optional
tomlokhorst Nov 15, 2022
3547eb5
Comment out deprecation warnings
tomlokhorst Nov 15, 2022
65d9119
Skip files where parsing fails
tomlokhorst Nov 15, 2022
0679309
Only run parsers when required
tomlokhorst Nov 15, 2022
6181f4f
Fix example
tomlokhorst Nov 15, 2022
e67a23d
Use xcodebuild instead of fastlane
tomlokhorst Nov 15, 2022
ed4e3e6
Made StringResource defaultValue optional, default to Base or develop…
tomlokhorst Nov 16, 2022
fee6f70
Add Args to LocalizedStringApp tests
tomlokhorst Nov 17, 2022
bdc10ac
Move internals
tomlokhorst Nov 22, 2022
4d4c021
Update StringResource+Integrations
tomlokhorst Nov 22, 2022
497c132
Add test for localized app in github workflow
tomlokhorst Nov 22, 2022
8c4da30
Update github workflow checks
tomlokhorst Nov 22, 2022
2cb7895
Update ResourceApp example
tomlokhorst Nov 22, 2022
131eba5
Enable watchOS in podspec
tomlokhorst Nov 24, 2022
3e15f84
Add stringsdict LocalizedStringApp example
tomlokhorst Nov 26, 2022
ee9ecbe
Update generate function for strings
tomlokhorst Nov 26, 2022
75c8947
Add StringResource.Source
tomlokhorst Nov 27, 2022
445ff99
Generate preferredLanguages functions
tomlokhorst Nov 27, 2022
5b76999
Update tests for preferredLanguages
tomlokhorst Nov 27, 2022
db0f88f
Add missing functions
tomlokhorst Nov 27, 2022
1037c7f
Disable locale tests
tomlokhorst Nov 28, 2022
48a9c9d
Refactor StringResource+Integrations
tomlokhorst Nov 28, 2022
728f072
Generate deprecated message
tomlokhorst Nov 28, 2022
64db446
Add locale override
tomlokhorst Nov 28, 2022
de592c4
Add locale functions for string
tomlokhorst Nov 28, 2022
1c81f71
Disable watchOS in podspec, results in lint error https://github.com/…
tomlokhorst Nov 28, 2022
c60f975
Always use String(format:) for strings without arguments, for use wit…
tomlokhorst Nov 28, 2022
c30333e
Add %% examples
tomlokhorst Nov 28, 2022
149d4b0
Update migration guide
tomlokhorst Nov 28, 2022
5bd89b1
Update README.md
tomlokhorst Nov 28, 2022
aebdd82
Update Migration.md
tomlokhorst Nov 29, 2022
dc98a73
add functions to create view controller with native DI
417-72KI Nov 30, 2022
ed96257
Parse AppKit storyboard
tomlokhorst Dec 1, 2022
c696dc5
Add AppKit Storyboard integrations
tomlokhorst Dec 1, 2022
7d1c1d1
Update Nib/Storyboard parsers
tomlokhorst Dec 1, 2022
1691a58
Update Nib/Storyboard generators for AppKit
tomlokhorst Dec 1, 2022
f79bae7
add function to get `Data` from `DataResource` directly
417-72KI Dec 1, 2022
114a3e5
Add comment to DataResource.callAsFunction
tomlokhorst Dec 1, 2022
099e49a
AppKit Segue
tomlokhorst Dec 1, 2022
0b5d265
Bump actions
uhooi Dec 1, 2022
84b0b05
Bump actions
uhooi Dec 1, 2022
2bd2bd8
Update github action checks
tomlokhorst Dec 1, 2022
705eb24
Revert "Bump actions"
tomlokhorst Dec 2, 2022
a5f7637
Revert "Bump actions"
tomlokhorst Dec 2, 2022
202338b
Revert "Update github action checks"
tomlokhorst Dec 2, 2022
d830041
Fix broken nib/storyboard parsers, no duplicate key in dictionary
tomlokhorst Dec 4, 2022
49168a1
Remove deployment target in ResourceApp
tomlokhorst Dec 4, 2022
1732904
Fixes invalid LocaleReference, fixes https://github.com/mac-cain13/R.…
tomlokhorst Dec 6, 2022
7b64c5b
Update Migration.md
tomlokhorst Dec 6, 2022
581b65d
Generate fully qualified names for Color/Data/Image resources
tomlokhorst Dec 7, 2022
2ecbfc5
Update Migration Guide
ykws Dec 7, 2022
113c937
Update Migration.md
tomlokhorst Dec 7, 2022
39913f1
Cleanup file comments, re-indent some files
tomlokhorst Dec 9, 2022
39fc06a
Fix typo
ykws Dec 9, 2022
3f1e58a
Deduplicate known asset tags
tomlokhorst Dec 10, 2022
dac91cf
Add 'project' flag for generators
tomlokhorst Dec 10, 2022
5c101a1
Import AppKit/UIKit for validate functions
tomlokhorst Dec 11, 2022
8699f66
Check for AppKit and macCatalyst
tomlokhorst Dec 11, 2022
5891c8e
Silence warning about locale.languageCode
tomlokhorst Dec 11, 2022
e360d45
Fix build in Xcode 14.0
tomlokhorst Dec 11, 2022
208f4de
Update actions in checks.yml
tomlokhorst Dec 11, 2022
d52e432
Update action in release.yml
tomlokhorst Dec 11, 2022
ecff4a6
Update upload-artifact
tomlokhorst Dec 11, 2022
6c86976
Restore watchOS support on podspec
tomlokhorst Jan 13, 2023
6835a9f
Remove watchOS from podspec, causes validation failure
tomlokhorst Jan 13, 2023
b785d6c
Bump year
mac-cain13 Feb 6, 2023
1720f05
Allow main let to not be generated by providing omit-main-let flag
Feb 15, 2023
8148f33
Update mainLet code
tomlokhorst Mar 5, 2023
90a6cc6
Compare URLs with resolved symlinks
cerisier Feb 20, 2023
22064d0
Re-enable watchOS support in CocoaPods
tomlokhorst Mar 5, 2023
810ba1e
Update release.yml
tomlokhorst Mar 5, 2023
5a57780
Update release.yml
tomlokhorst Mar 5, 2023
89c1811
Update release.yml
tomlokhorst Mar 5, 2023
c3e3ac9
Update release.yml
tomlokhorst Mar 5, 2023
42787d7
Update release.yml
tomlokhorst Mar 5, 2023
6ebb784
Fix sourceRootURL
m-sugawara Mar 27, 2023
58731b3
Default source root to current directory
tomlokhorst Apr 16, 2023
ecd1ebe
Fix example testcase in Examples.md
null-z Mar 16, 2023
2685e0d
Update README.md
tomlokhorst Apr 17, 2023
4809b2e
Update notarization to use notarytool, instead of altool
tomlokhorst Apr 16, 2023
8a5ef89
Made links in documentation relative
tomlokhorst Apr 17, 2023
8ddab16
Move Cocoapods in workflow
tomlokhorst Apr 17, 2023
968be4f
Add availability checks for visionOS to integrations
tomlokhorst Sep 9, 2023
b01838c
Update example project for Xcode 15
tomlokhorst Sep 10, 2023
14c0b5f
Use current locale when overrideLocale is missing
Lumisilk Jul 24, 2023
c9a361f
Update dependencies
tomlokhorst Sep 10, 2023
259903a
Allow warnings in `pod trunk push`
tomlokhorst Sep 10, 2023
c93b6d2
Disable Publish to CocoaPods
tomlokhorst Sep 10, 2023
97568af
Added steps to create and release artifactbundle.
rmnli Jul 15, 2023
01b77b7
fixed typo.
rmnli Jul 21, 2023
d6780af
Update release.yml
tomlokhorst Sep 10, 2023
78d4417
Update release.yml
tomlokhorst Sep 10, 2023
f8370e5
Disable atomically write
Keitaro0226 Jan 7, 2024
448beb4
Fix some conditions for Linux build
gregormate Dec 5, 2023
53d5254
Whitespace cleanup
tomlokhorst Feb 4, 2024
ce497c8
Remove RswiftModifyXcodePackages step as it doesn't seem needed anymo…
tomlokhorst Feb 4, 2024
f6fe95c
Add Xcode Cloud instruction
tomlokhorst Feb 4, 2024
74a2dbf
Testing CocoaPods release again
tomlokhorst Feb 4, 2024
eb3d8a4
Disable CocoaPods again, trunk push fails
tomlokhorst Feb 5, 2024
ca5bcb8
Convert unnecessary optional return type to non-optional
hujunfeng Jan 24, 2024
eb8c798
Update to XcodeEdit 2.10.0
tomlokhorst Sep 19, 2024
f5ac846
Update XcodeEdit dependency in Package.resolved
tomlokhorst Sep 19, 2024
1cec03d
Generate var getter for reuseIdentifier, fixes concurrentcy-safe error.
tomlokhorst Sep 19, 2024
04727bd
Documentation updates
mac-cain13 Sep 19, 2024
25bd9a1
Update XcodeEdit dependency
tomlokhorst Sep 19, 2024
a520963
Re-enable CocoaPods
mac-cain13 Sep 19, 2024
f87f360
Update Examples.md
tomlokhorst Sep 19, 2024
262ab99
Update release.yml
tomlokhorst Sep 23, 2024
68e27c4
Update release.yml
tomlokhorst Sep 23, 2024
854e68d
Update XcodeEdit dependency
tomlokhorst Sep 24, 2024
18e0367
Bump actions/download-artifact from 1 to 4.1.7 in /.github/workflows
dependabot[bot] Sep 3, 2024
cda4ddc
Add Sendable annotations to public value types in RswiftResources
tomlokhorst Oct 6, 2024
b3c27ad
Add conformance to Sendable for generated _R struct
tomlokhorst Oct 7, 2024
eb2ddc6
Only explictly mark generated structs Sendable for public structs
tomlokhorst Oct 7, 2024
848329d
Update checks workflow with new upload-artifact action
tomlokhorst Nov 3, 2024
05644e1
Sort locales in generated strings comment, so it is stable
tomlokhorst Nov 3, 2024
d03738c
Implement file system synchronized directories, including at deeper l…
tomlokhorst Nov 3, 2024
12eea02
Bump XcodeEdit dependency
tomlokhorst Nov 3, 2024
269504e
Update checks.yml
tomlokhorst Nov 4, 2024
e8ffe73
Update checks.yml
tomlokhorst Nov 4, 2024
b158cb4
Update dependencies
tomlokhorst Nov 4, 2024
17b6cb2
Update Xcode version in github workflows
tomlokhorst Nov 4, 2024
8bbcfc8
Sort locales in warnings
tomlokhorst Nov 4, 2024
f064574
Update Package.resolved in example project
tomlokhorst Nov 4, 2024
c53faa4
Update github action in workflows
tomlokhorst Nov 4, 2024
1ba978d
Update github action in workflows
tomlokhorst Nov 4, 2024
c028c11
Downgrade github action in workflows
tomlokhorst Nov 5, 2024
c6a018d
Update workflow again
tomlokhorst Nov 5, 2024
24383e6
Update workflows
tomlokhorst Nov 5, 2024
ba3acea
Update github workflow
tomlokhorst Nov 5, 2024
07da9a2
Update github workflow
tomlokhorst Nov 5, 2024
8a5b40c
Add FileSystemSynchronized test project
tomlokhorst Nov 5, 2024
c2e89d8
Update Package.resolved
tomlokhorst Nov 5, 2024
764e33f
Fix support for plist items that are in arrays
jhildensperger Oct 23, 2024
909c5dd
Add `https` protocol to SPM Installation
ExTBH Nov 14, 2024
18c4e39
Correctly parse Localized resources for Xcode 16 format
tomlokhorst Mar 16, 2025
6f1b3b6
Update to XcodeEdit 2.13.0
tomlokhorst Mar 16, 2025
3468cbb
Swift 6 fixes
tomlokhorst Mar 16, 2025
b684209
Update swift argument parser dependency
tomlokhorst Mar 16, 2025
0c4b09c
Update Glob code to fix deprecation warnings
tomlokhorst Mar 16, 2025
ee56b5f
Add StringResource with 10 args
talipatpace May 17, 2023
aac109a
Rename License file to LICENSE
talipatpace Apr 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
116 changes: 74 additions & 42 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@ name: Checks

on:
push:
branches: [ master ]
branches: [ main ]
pull_request:
branches: '*'

env:
DEVELOPER_DIR: /Applications/Xcode_13.0.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode-16.0.0.app/Contents/Developer

jobs:
unit-tests:
runs-on: macos-11
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Pull cache
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: .build
key: ${{ runner.os }}spm${{ hashFiles('**/Package.resolved') }}
Expand All @@ -25,83 +25,115 @@ jobs:
- name: Test
run: swift test -v

test-iOS:
runs-on: macos-11
needs: build
test-iOS-ResourceApp:
runs-on: self-hosted
needs: build-rswift
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Download build
uses: actions/download-artifact@v1
uses: actions/download-artifact@v4.1.7
with:
name: rswift-dev
path: rswift-dev
- name: Put build into place
run: |
mkdir -p build/Debug
mv rswift-dev/rswift build/Debug/rswift
chmod +x build/Debug/rswift
mkdir -p .build/release
mv rswift-dev/rswift .build/release/rswift
chmod +x .build/release/rswift
- name: Pull cache
uses: actions/cache@v2
uses: actions/cache@v4
id: podcache-ios
with:
path: Examples/Pods
path: Examples/ResourceApp/Pods
key: ${{ runner.os }}pods${{ hashFiles('**/Podfile.lock') }}
restore-keys: |
${{ runner.os }}pods
- name: Install pods
if: steps.podcache-ios.outputs.cache-hit != 'true'
run: pod install --project-directory=Examples
run: pod install --project-directory=Examples/ResourceApp
- name: Test
run: fastlane scan --workspace "Examples/RswiftExamples.xcworkspace" --scheme "ResourceApp"
#run: fastlane scan --workspace "Examples/ResourceApp/ResourceApp.xcworkspace" --scheme "ResourceApp"
run: xcodebuild -workspace Examples/ResourceApp/ResourceApp.xcworkspace -scheme ResourceApp -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.0' test

test-tvOS:
runs-on: macos-11
needs: build
test-iOS-StaticFrameworks:
runs-on: self-hosted
needs: build-rswift
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Download build
uses: actions/download-artifact@v1
uses: actions/download-artifact@v4.1.7
with:
name: rswift-dev
path: rswift-dev
- name: Put build into place
run: |
mkdir -p build/Debug
mv rswift-dev/rswift build/Debug/rswift
chmod +x build/Debug/rswift
- name: Pull cache
uses: actions/cache@v2
id: podcache-tvos
mkdir -p .build/release
mv rswift-dev/rswift .build/release/rswift
chmod +x .build/release/rswift
- name: Test
#run: fastlane scan --project "Examples/RswiftAppWithStaticFrameworks/RswiftAppWithStaticFrameworks.xcodeproj" --scheme "App"
run: xcodebuild -project Examples/RswiftAppWithStaticFrameworks/RswiftAppWithStaticFrameworks.xcodeproj -scheme App -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.0' test

test-iOS-LocalizedStringApp:
runs-on: self-hosted
needs: build-rswift
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download build
uses: actions/download-artifact@v4.1.7
with:
path: Examples/Pods
key: ${{ runner.os }}pods${{ hashFiles('**/Podfile.lock') }}
restore-keys: |
${{ runner.os }}pods
- name: Install pods
if: steps.podcache-tvos.outputs.cache-hit != 'true'
run: pod install --project-directory=Examples
name: rswift-dev
path: rswift-dev
- name: Put build into place
run: |
mkdir -p .build/release
mv rswift-dev/rswift .build/release/rswift
chmod +x .build/release/rswift
- name: Test
run: xcodebuild -project Examples/LocalizedStringApp/LocalizedStringApp.xcodeproj -scheme LocalizedStringApp -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.0' test

test-tvOS:
runs-on: self-hosted
needs: build-rswift
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download build
uses: actions/download-artifact@v4.1.7
with:
name: rswift-dev
path: rswift-dev
- name: Put build into place
run: |
mkdir -p .build/release
mv rswift-dev/rswift .build/release/rswift
chmod +x .build/release/rswift
- name: Test
run: fastlane scan --workspace "Examples/RswiftExamples.xcworkspace" --scheme "ResourceApp-tvOS"
#run: fastlane scan --project "Examples/RtvApp/RtvApp.xcodeproj" --scheme "ResourceApp-tvOS"
run: xcodebuild -project Examples/RtvApp/RtvApp.xcodeproj -scheme ResourceApp-tvOS -destination 'platform=tvOS Simulator,name=Apple TV,OS=18.0' test

build:
runs-on: macos-11
build-rswift:
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Pull cache
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: .build
key: ${{ runner.os }}spm${{ hashFiles('**/Package.resolved') }}
restore-keys: |
${{ runner.os }}spm
- name: Set version
run: |
sed -i "" "s/\(static let version = \"\)Unknown\(\"\)/\1Development build: ${GITHUB_SHA}\2/" Sources/rswift/Rswift.swift
sed -i "" "s/\(static let version = \"\)Unknown\(\"\)/\1Development build: ${GITHUB_SHA}\2/" Sources/rswift/Config.swift
- name: Build
run: swift build -v -c release
- name: Store artifact
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: rswift-dev
path: .build/release/rswift
123 changes: 93 additions & 30 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ on:
types: created

env:
DEVELOPER_DIR: /Applications/Xcode_12.5.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode-16.0.0.app/Contents/Developer

jobs:
release-build:
runs-on: macos-11
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Set version
run: |
sed -i "" "s/\(static let version = \"\).*\(\"\)/\1${TAG}\2/" Sources/rswift/Rswift.swift
sed -i "" "s/\(static let version = \"\).*\(\"\)/\1${TAG}\2/" Sources/rswift/Config.swift
env:
TAG: ${{ github.event.release.tag_name }}
- name: Tarball source
Expand All @@ -33,34 +33,41 @@ jobs:
asset_name: rswift-${{ github.event.release.tag_name }}-source.tar.gz
asset_content_type: application/tar+gzip

- name: Build fat binary
- name: Build universal binary
run: |
swift build -c release --arch x86_64 --arch arm64

- name: Delete temp keychain from previous run
run: |
/usr/bin/security delete-keychain signing_temp.keychain || true
- name: Import Signing Certificates
uses: apple-actions/import-codesign-certs@v1
uses: apple-actions/import-codesign-certs@v3
with:
p12-file-base64: ${{ secrets.APPLE_CERTS }}
p12-password: ${{ secrets.APPLE_CERTS_PASSWORD }}
p12-file-base64: ${{ secrets.APPLE_CERTIFICATES }}
p12-password: ${{ secrets.APPLE_CERTIFICATES_PASSWORD }}
- name: Code Sign
run: |
codesign --force --options runtime --sign 'Developer ID Application: Mathijs Kadijk (5Z49PA849J)' .build/apple/Products/Release/rswift
codesign --force --options runtime --sign "$IDENTITY" .build/apple/Products/Release/rswift
env:
IDENTITY: 'Developer ID Application: Nonstrict B.V. (WT5N9FK54M)'
- name: Store build artifact
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: rswift-${{ github.event.release.tag_name }}
path: .build/apple/Products/Release/rswift

- name: Archive ZIP
run: zip --junk-paths ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.zip .build/apple/Products/Release/rswift License
run: zip --junk-paths $FILENAME .build/apple/Products/Release/rswift License && zip --recurse-paths $FILENAME Sources/RswiftResources
env:
FILENAME: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.zip
- name: Notarize ZIP
run: |
sh notarize.sh
xcrun notarytool submit $FILENAME --apple-id $APPLE_ID --password $APP_PASSWORD --team-id $TEAM_ID --wait
env:
BUNDLE_ID: nl.mathijskadijk.rswift
DEV_ACCOUNT: ${{ secrets.APPLE_ID_EMAIL }}
PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
DEV_TEAM: 5Z49PA849J
BUNDLE_ID: com.nonstrict.rswift
APPLE_ID: ${{ secrets.APPLE_IDENTIFIER }}
APP_PASSWORD: ${{ secrets.APPLE_IDENTIFIER_PASSWORD }}
TEAM_ID: WT5N9FK54M
FILENAME: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.zip
- name: Attach ZIP to release
uses: actions/upload-release-asset@v1
Expand All @@ -71,34 +78,80 @@ jobs:
asset_path: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.zip
asset_name: rswift-${{ github.event.release.tag_name }}.zip
asset_content_type: application/zip

- name: Make artifact bundle
run: |
set -ex

mkdir -p $ARTIFACT_BUNDLE_DIR/rswift/bin
cp .build/apple/Products/Release/rswift $ARTIFACT_BUNDLE_DIR/rswift/bin
cp License $ARTIFACT_BUNDLE_DIR/rswift

cat <<EOF > $ARTIFACT_BUNDLE_DIR/info.json
{
"schemaVersion": "1.0",
"artifacts": {
"rswift": {
"type": "executable",
"version": "$VERSION",
"variants": [
{
"path": "rswift/bin/rswift",
"supportedTriples": ["x86_64-apple-macosx", "arm64-apple-macosx"]
},
]
}
}
}
EOF

- name: Publish to Cocoapods
pushd $ARTIFACT_BUNDLE_DIR
zip -r $FILENAME .
popd
env:
VERSION: ${{ github.event.release.tag_name }}
ARTIFACT_BUNDLE_DIR: ${{ runner.temp }}/rswift.artifactbundle
FILENAME: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.artifactbundle.zip
- name: Notarize artifact bundle
run: |
export POD_VERSION=$(echo $TAG_NAME | cut -c2-)
pod trunk push
xcrun notarytool submit $FILENAME --apple-id $APPLE_ID --password $APP_PASSWORD --team-id $TEAM_ID --wait
env:
TAG_NAME: ${{ github.event.release.tag_name }}
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
BUNDLE_ID: com.nonstrict.rswift
APPLE_ID: ${{ secrets.APPLE_IDENTIFIER }}
APP_PASSWORD: ${{ secrets.APPLE_IDENTIFIER_PASSWORD }}
TEAM_ID: WT5N9FK54M
FILENAME: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.artifactbundle.zip
- name: Attach artifact bundle to release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.artifactbundle.zip
asset_name: rswift-${{ github.event.release.tag_name }}.artifactbundle.zip
asset_content_type: application/zip

- name: Archive PKG
run: |
mkdir -p $PKG_ROOT/$BINARY_ROOT
cp .build/apple/Products/Release/rswift $PKG_ROOT/$BINARY_ROOT
pkgbuild --root $PKG_ROOT --identifier "nl.mathijskadijk.rswift" --version $TAG_NAME --install-location "/" --sign "Developer ID Installer: Mathijs Kadijk (5Z49PA849J)" $FILENAME
pkgbuild --root $PKG_ROOT --identifier $BUNDLE_ID --version $TAG_NAME --install-location "/" --sign "$IDENTITY" $FILENAME
env:
TAG_NAME: ${{ github.event.release.tag_name }}
FILENAME: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.pkg
BUNDLE_ID: nl.mathijskadijk.rswift
BUNDLE_ID: com.nonstrict.rswift
IDENTITY: 'Developer ID Installer: Nonstrict B.V. (WT5N9FK54M)'
PKG_ROOT: ${{ runner.temp }}/pkgroot
BINARY_ROOT: /usr/local/bin
- name: Notarize PKG
run: |
sh notarize.sh && xcrun stapler staple "$FILENAME"
xcrun notarytool submit $FILENAME --apple-id $APPLE_ID --password $APP_PASSWORD --team-id $TEAM_ID --wait
xcrun stapler staple $FILENAME
env:
BUNDLE_ID: nl.mathijskadijk.rswift
DEV_ACCOUNT: ${{ secrets.APPLE_ID_EMAIL }}
PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
DEV_TEAM: 5Z49PA849J
BUNDLE_ID: com.nonstrict.rswift
APPLE_ID: ${{ secrets.APPLE_IDENTIFIER }}
APP_PASSWORD: ${{ secrets.APPLE_IDENTIFIER_PASSWORD }}
TEAM_ID: WT5N9FK54M
FILENAME: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.pkg
- name: Attach PKG to release
uses: actions/upload-release-asset@v1
Expand All @@ -110,5 +163,15 @@ jobs:
asset_name: rswift-${{ github.event.release.tag_name }}.pkg
asset_content_type: application/pkg

- name: Publish to Homebrew
run: brew bump-formula-pr --tag $TAG_NAME --revision $REVISION rswift || exit 0
- name: Delete temp keychain from this run
if: always()
run: |
/usr/bin/security delete-keychain signing_temp.keychain || true

- name: Publish to Cocoapods
run: |
export POD_VERSION=$TAG_NAME
pod trunk push --allow-warnings
env:
TAG_NAME: ${{ github.event.release.tag_name }}
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
4 changes: 2 additions & 2 deletions Documentation/Contribute.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ Thank you for taking some of your precious time helping this project move forwar

Most important is to read the docs and scan the issue tracker before so you're sure your question/idea/bugreport isn't already answered/in the make/being fixed:

- [Read the Readme](https://github.com/mac-cain13/R.swift/blob/master/Readme.md)
- [Read the other documentation](https://github.com/mac-cain13/R.swift/tree/master/Documentation)
- [Read the Readme](/README.md)
- [Read the other documentation](/Documentation)
- [Check open pull requests](https://github.com/mac-cain13/R.swift/pulls)
- [Search the issue tracker](https://github.com/mac-cain13/R.swift/issues)

Expand Down
Loading
Loading