Commit Graph

84 Commits

Author SHA1 Message Date
Pedro Piñera 067fa1eaee Set up workflow to run the tests in parallel 2020-03-27 10:56:29 +01:00
Pedro Piñera a5f8aa6489 Add test that ensures that the projects that we generate with the framework template compile 2020-03-27 10:56:13 +01:00
Marek Fořt 9e595719de Change match to equal in scaffold.feature. 2020-03-21 16:33:33 +01:00
Marek Fořt f242ac96ac Fix scaffold fixture. 2020-03-21 12:52:39 +01:00
Marek Fořt c5dfa7e46d Fix passing path arguments on first parse. 2020-03-21 12:26:09 +01:00
Marek Fořt 1edfa4d39e Generate content with stencil. 2020-03-20 16:20:47 +01:00
Zhuhao Wang cb55e98544
Add support for customizing profile and analyze action 2020-03-11 17:50:09 +08:00
Pedro Piñera 98ffc0b0f0 Update fixtures 2020-03-10 18:29:49 +01:00
Oliver Atkinson b07fa01705 Add Collection+isNotEmpty and remve erronous ')' 2020-03-08 22:08:23 +00:00
Pedro Piñera 5db37ca1c9 Add acceptance tests 2020-03-02 20:14:29 +01:00
Marek Fořt 88db0dc555 Fix target action having a space. 2020-02-26 21:46:55 +01:00
Marek Fořt 2d4c378701 Build ios_app_with_actions to test invoking script. 2020-02-11 22:14:03 +01:00
Kas 1584e42e01
Ensure precompiled frameworks of target applications aren't included in UI test targets (#888)
Resolves: https://github.com/tuist/tuist/issues/887

- Test targets declare their host applications as a dependency
- This lead to a few graph queries transitively including depdencies of the application in the test targets
- When performing dependency searches, we can skip dependency tree of nodes that can embed products (e.g. Applications)

Test Plan:

- Run `tuist generate` within `fixtures/ios_app_with_transitive_framework`
- Open the generated workspace
- Verify that `AppUITests` has no precompiled frameworks included
2020-01-15 14:06:03 +00:00
Marcin Iwanicki 8a4b65724f
Add RemoveHeadersOnCopy attribute for build files in copy files build phases (#886)
### Short description 📝

While working on https://github.com/bloomberg/xcdiff/pull/40, we discovered that some of the build files are missing `RemoveHeadersOnCopy` attribute. The attribute determines if the headers should be striped from the archive, and if not set, can lead to headers leakage. The attribute is not visible in the Xcode UI, but added automatically every time a certain bundle types are added to a copy files build phase (i.e. .framework, .appex).
Oddly the attribute is not added for `.xcframework`, but it's probably an Xcode issue (FB7533618).

### Solution 📦

Added "RemoveHeadersOnCopy" attribute for build files in embed precompiled frameworks, embed watch content, and embed app extensions build phases.

### Implementation 👩‍💻👨‍💻

- [x] Update TuistGenerator to add `RemoveHeadersOnCopy`
- [x] Update acceptance tests
- [x] Update CHANGELOG
2020-01-13 17:23:13 +00:00
ldindu 881ddfdf47
Merge branch 'master' into feature/introduction-xcframework-dependency-type 2019-12-11 20:41:31 +00:00
ldindu 4842721967 Address comments 2019-12-11 20:31:19 +00:00
Adam Khazi 021a6ed3fa
Workspace Schemes (#752)
Resolves https://github.com/tuist/tuist/issues/667

### Short description 📝

A follow up to https://github.com/tuist/tuist/pull/730 where workspace schemes are exposed in the `ProjectDescription`. This is the final step of the steps included in the issue.

### Solution 📦

Expose `TargetReference` for both project and workspace schemes. Users can use `.project(path: "sometime/somepath", name: "targetname")` to reference targets within custom workspace schemes.

Due to how the generation process works (especially how `generatedProjects` are populated in the `ProjectGenerator`), `.project(path: .., name: ..)` we cannot reference remote targets in project schemes yet without some changes in the `ProjectGenerator`. This is not a problem for workspace schemes. Since the `ProjectDescription` `Scheme` is shared by both workspaces and projects, I've added a scheme linting rule to check that targets defined in custom project schemes are within the current project i.e., not referencing remote targets in other projects.

### Implementation 👩‍💻👨‍💻

- [X] Update `ProjectDescription` to support `TargetReference`
- [X] Add Project scheme linter for the referencing remote targets invalid case
- [X] Update fixture `ios_app_with_custom_scheme` to add workspace scheme
2019-12-10 16:05:52 +00:00
ldindu 9c21445b68 Add fixture tests for ios app with xcframework 2019-12-09 21:33:07 +00:00
Pedro Piñera db036bf92b Remove the acceptance tests that try to compile the manifest targets 2019-11-27 15:46:48 +01:00
Pedro Piñera 64a9e9fd88 Delete manifests target generation 2019-11-26 15:49:32 +01:00
Pedro Piñera 3b468601be Remove byebug 2019-11-26 14:22:42 +01:00
Pedro Piñera d8372ed42a Fix tests 2019-11-26 14:20:48 +01:00
Pedro Piñera d5f70c400a Add acceptance tests 2019-11-26 13:16:39 +01:00
Guilherme Souza 4ffb1c4f5e Added support for custom Archive Action when defining scheme 2019-11-25 20:25:17 +01:00
Pedro Piñera Buendía b1c2fc8042
Support reusing manifest content across multiple projects (#542)
* Support importing helper files from the manifest that are defined in the TuistConfig/ProjectDescriptionHelpers directory

* Remove TuistDirectoryLocator

* Generate a more complet project

* Add acceptance tests

* Test ProjectDescriptionHelpersBuilder

* Use derived Info.plist files instead

* Address some comments
2019-11-14 19:18:48 +01:00
Kas 7bb8ad7ac7
Add support for watchOS apps (#623)
### Short description 

Adds support for watchOS apps.

### Solution 

Add support for watchOS / watchOS Extension products as well as the appropriate dependency rules.

### Implementation

- [x] Add product types
- [x] Add fixture & acceptance test
- [x] Update graph / link rules
- [x] Add embed watch build phase
- [x] Add watch build settings
- [x] Add linter rules for bundle IDs
- [x] Add linter rules for valid product types
- [x] Update changelog
- [x] Update documentation

### Test Plan

- Run `tuist generate` within `fixtures/ios_app_with_watchapp2`
- Verify the generated project contains a Watch App & Watch App Extension
- Compare against a manually created project with a Watch App
2019-11-06 13:36:43 +00:00
Pedro Piñera Buendía 8df4e6464b
Rename Core to Support (#621)
* Rename Core to Support

* Fix acceptance tests
2019-11-01 08:35:06 +01:00
Alexander Guschin 819034b56e Add support for sticker pack extension & app extension products (#489)
* Add support for sticker pack product

* Add support for extensions & rename sticker product

* Update documentation

* Add package type for app extensions

* Add tests for app extension integration

* Update product tests

* swiftformat

* Add fixture & acceptance tests

* update change log
2019-10-29 19:42:21 +01:00
Pedro Piñera Buendía 8ea0956e1d
Embed frameworks using a bash script (#610)
* Delete embed logic

* Add methods to read the dsym path & bcsymbolmap paths from a framework

* Place the tests in the right test case

* Implement EmbedScriptGenerator

* Test EmbedScriptGenerator

* Extract methods that interact with the system into metadata provider utilities and fix tests

* Include output paths

* Test FrameworkMetadataProvider

* Test PrecompiledMetadataProvider

* Add more tests

* Create fixture project

* Add acceptance test

* Address comments

* Use Xcode 11.1

* Update Package.resolved

* Update XcodeProj

* Make the tuistenv install test more resilient
2019-10-29 13:34:02 +01:00
Marek Fořt 06cc4ca8e1 Add ios_app_with_static_library_and_package fixture. 2019-09-28 13:04:45 +02:00
Oliver Atkinson 5c20d859ef Create mac framework for fixture, Only link Package.Resolved if it contains a remote package, swiftformat . 2019-09-24 09:06:56 +01:00
Oliver Atkinson 20bb985ac9 Update generate.feature 2019-09-23 21:32:11 +01:00
Oliver Atkinson 89ff3f9bec Use correct version, add --verbose and update build to use iphoneos sdk 2019-09-23 21:27:23 +01:00
Oliver Atkinson 9ec5c8ca68 Update prebuilt dependencies 2019-09-23 18:03:57 +01:00
Oliver Atkinson e5210afd36 Log the command run for easier debugging locally 2019-09-23 17:02:48 +01:00
Oliver Atkinson 11dc308762 Provide sdk and omit device check 2019-09-23 16:47:00 +01:00
Oliver Atkinson 5dd3020900 Update destination resolution for acceptance tests 2019-09-23 16:04:36 +01:00
Oliver Atkinson 341c97dbd8 Update to iPhone 11 2019-09-23 15:47:29 +01:00
Oliver Atkinson d9c76fa6bd Use iPhone 8 2019-09-23 15:46:54 +01:00
Oliver Atkinson f29e350bf9 Update test device to iPhone X 2019-09-23 15:45:03 +01:00
Marek Fořt 2fd2e311d0 Merge remote-tracking branch 'origin/master' into package-dependency 2019-09-21 15:46:40 +02:00
Pedro Piñera Buendía 7246d710af
Fix build phases not being generated in the right positions (#506)
* Fix build phases not being generated in the right positions

* Remove extra space

* Add CHANGELOG entry

* Fix step

* Fix tests

* Address comments

* Add missing line
2019-09-20 08:48:09 +02:00
Pedro Piñera Buendía b68c13ccea
Fix continuous integration (#502)
* Fix continuous integratin

* Use is_available instead of availability

* Exclude fixtures/

* Fix linting issues

* Fix rubocop

* Fix linting issue
2019-09-18 23:55:46 +02:00
Marek Fořt c0dddc95a9 Add fixture for project with remote swift package. 2019-09-16 19:39:57 +02:00
Marcin Iwanicki ff23c4057c
Update XcodeProj to 7.0.1 (#495)
- Update XcodeProj to 7.0.1
- Update unit tests 
- Fix one step in the acceptance tests
2019-09-13 11:01:34 +01:00
Marek Fořt 48233fc485 Update xcodeproj. 2019-09-11 21:30:09 +02:00
Marek Fořt a9b51a702e Add scenario for local package. 2019-09-08 22:07:00 +02:00
Kas 1cbb9b402e
Expose the `.bundle` product type (#479)
Part of https://github.com/tuist/tuist/issues/290

- Tuist support iOS resouce bundles
- This can now be leveraged via specifying `.bundle` product types
- Fixture has been updated to show case how this can be used

Test Plan:

- Run `tuist generate` within `fixtures/ios_app_with_framework_and_resources`
- Verify the project `StaticFramework` has a bundle target called `StaticFrameworkResources` which includes resources
- Verify the `StaticFrameworkResources` bundle is copied as a resouce in the App
- Verify running the app prints out descriptions for images within `StaticFrameworkResources`
2019-08-14 07:03:40 +01:00
Pedro Piñera Buendía 2b09f5cfa9
Add compatible Xcodes option to the TuistConfig (#476)
* Add model changes to ProjectDescription

* Add models to the TuistGenerator target

* Create Xcode & XcodeController to interact with local Xcode installations

* Implement TuistConfigLinter

* Add acceptance test

* Support initializing CompatibleXcodeVersions with a string literal

* Add documentation

* Update CHANGELOG

* Address comments

* Fix imports

* Rename TuistConfigLinter to EnvironmentLinter

* Some style fixes
2019-08-07 19:44:44 +02:00
Pedro Piñera Buendía 22854327d5
Add support for CocoaPods dependencies (#465)
* Add TargetDependency.cocoapods

* Add Dependency.cocoapods

* Add CocoaPodsNode model and support for caching it to the GraphLoaderCache

* Add tests to CocoaPodsNode

* Support loading a CocoaPods target dependency

* Test TargetNode changes

* Lint that the directories referenced by CocoaPods dependencies contain a Podfile

* Run 'pod install' after the workspace generation

* Add documentation

* Update Pod specs repository automtically

* Update CHANGELOG

* Add acceptance tests

* Remove empty code block and fix acceptance test
2019-08-04 07:22:49 -04:00