Support Artifact Bundle (#1388)

* support artifact bundle

* update CHANGELOG to exact PR

* build ArtifactBundle only on macOS

* update to copy SettingPresets into bundle

* fix CHANGELOG.md

* load Bundle.module

* update ArtifactBundleGen

* update ArtifactBundleGen to linux issue

* fix unnecessary code

* add lisence to bundle
This commit is contained in:
freddi(Yuki Aki) 2024-02-13 18:48:23 +09:00 committed by GitHub
parent 6bbf2c6543
commit 2c1500761d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 27 additions and 3 deletions

1
.gitignore vendored
View File

@ -7,4 +7,5 @@ xcuserdata
*.xcuserstate
XcodeGen.xcodeproj
xcodegen.zip
xcodegen.artifactbundle.zip
.vscode/launch.json

View File

@ -1,6 +1,9 @@
# Change Log
## Next Version
### Added
- Support Artifact Bundle #1388 @freddi-kit
## 2.38.0

View File

@ -48,3 +48,8 @@ brew:
archive: build
./scripts/archive.sh "$(EXECUTABLE_PATH)"
swift package plugin --allow-writing-to-package-directory generate-artifact-bundle \
--package-version $(VERSION) \
--executable-name $(EXECUTABLE_NAME) \
--build-config release \
--include-resource-path LICENSE

View File

@ -9,6 +9,15 @@
"version" : "4.6.1"
}
},
{
"identity" : "artifactbundlegen",
"kind" : "remoteSourceControl",
"location" : "https://github.com/freddi-kit/ArtifactBundleGen",
"state" : {
"revision" : "707e4ccc4b1c7e48e881cd5ea91e493a95df24bf",
"version" : "0.0.6"
}
},
{
"identity" : "graphviz",
"kind" : "remoteSourceControl",

View File

@ -20,8 +20,8 @@ let package = Package(
.package(url: "https://github.com/jakeheis/SwiftCLI.git", from: "6.0.3"),
.package(url: "https://github.com/mxcl/Version", from: "2.0.0"),
.package(url: "https://github.com/SwiftDocOrg/GraphViz.git", exact: "0.2.0"),
.package(url: "https://github.com/freddi-kit/ArtifactBundleGen", exact: "0.0.6")
],
targets: [
.executableTarget(name: "XcodeGen", dependencies: [
"XcodeGenCLI",
@ -42,6 +42,8 @@ let package = Package(
"PathKit",
"XcodeGenCore",
"GraphViz",
], resources: [
.copy("SettingPresets")
]),
.target(name: "ProjectSpec", dependencies: [
"JSONUtilities",

View File

@ -7,5 +7,5 @@
1. Run `make release`
1. Push commit and tag to github
1. Create release from tag on GitHub using the version number and relevant changelog contents
1. Run `make archive` and upload `xcodegen.zip` to the github release
1. Run `make brew` which will open a PR on homebrew core
1. Run `make archive` and upload `xcodegen.zip` and `xcodegen.artifactbundle.zip` to the github release
1. Run `make brew` which will open a PR on homebrew core

View File

@ -0,0 +1 @@
../../SettingPresets/

View File

@ -249,6 +249,9 @@ extension SettingsPresetFile {
symlink.parent() + relativePath,
] + possibleSettingsPaths
}
if let moduleResourcePath = Bundle.module.path(forResource: "SettingPresets", ofType: nil) {
possibleSettingsPaths.append(Path(moduleResourcePath) + "\(path).yml")
}
guard let settingsPath = possibleSettingsPaths.first(where: { $0.exists }) else {
switch self {