https://github.com/b9swift/ci-system
CI Toolkit for Apple Development
https://github.com/b9swift/ci-system
checkstyle-xml-report ci github-actions ios macos shell xcode xcodebuild xcresult xcresultbundle zsh
Last synced: about 1 month ago
JSON representation
CI Toolkit for Apple Development
- Host: GitHub
- URL: https://github.com/b9swift/ci-system
- Owner: b9swift
- License: other
- Created: 2024-01-05T23:47:04.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-09-06T08:01:59.000Z (8 months ago)
- Last Synced: 2025-12-25T23:10:07.630Z (5 months ago)
- Topics: checkstyle-xml-report, ci, github-actions, ios, macos, shell, xcode, xcodebuild, xcresult, xcresultbundle, zsh
- Language: Shell
- Homepage:
- Size: 117 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# B9CI - CI Toolkit for Apple Development
[](https://github.com/b9swift/CI-System/actions/workflows/ci.yml)
## Tools
### build-ios
Build an iOS target. This command is a redirect to [xcode-build](#xcode-build).
### check-result
This tool parses the Xcode result bundle and performs certain actions. It can:
* List build warnings and errors, including support for static analysis results.
* Limit build warnings to a specified threshold.
* Provide a view of issue category statistics.
* Print a summary of the tests.
* Export build issues to a checkstyle.xml report file.
See [command usage](https://github.com/b9swift/CI-System/blob/main/check-result#L10) for more details.
### fetch-mr
Fetch merge request.
Environment variables:
* `CI_CHANGE_LIST_PATH`: Saves the list of changed files to this path.
* `CI_GIT_MR_BRANCH`: The name of the merge request branch.
### pod-install
Performs a smart CocoaPods installation.
Environment variables:
* `CI_POD_INSTALL_LOG_FILE`: Path to the log file. Default: `build/pod_install.log`
### xcode-build
Build an Xcode project or workspace. This tool is a wrapper for the `xcodebuild` command.
Environment variables:
* Supports [xcCommand](#xcCommand) variables.
* `CI_CHECK_STYLE_FILE`: Export checkstyle.xml to this path.
* `XC_ANALYZE`, set to `true` or `1` to perform static analysis during the build. By default, this is disabled.
## Common Variables
### xcCommand
Inputs environment variables:
- `XC_WORKSPACE`, the path to the workspace file.
- `XC_PROJECT`, the path to the project file.
- `XC_SCHEME`, the name of the scheme.
- `XC_CLEAN`, set to `true` or `1` to clean before executing the action.
- `XC_CONFIGURATION`, build configuration, eg. `Debug`/`Release`/...
- `XC_DERIVED_DATA`, the xcodebuild command derivedDataPath parameter, defaults to `build/DerivedData`, set to an empty string or `0` or `false` to disable customization.
- `XC_DESTINATION`, target device, value can be the full parameter or supported abbreviations: `mac`, `ios`, `watchos`, `tvos`, `ios-simulator`, `watchos-simulator`, `tvos-simulator`. For simulator, it will auto select the latest available one.
- `XC_DISABLE_CODE_SIGNING`, set to `true` or `1` to disable code signing.
- `XC_RESULT_BUNDLE`, path to xcresult bundle.
- `XC_LOG_FILE`, path to log file.
- `XC_BEAUTIFY`, set to `true` or `1` to format output using xcbeautify.
## Run Tests
[shunit2](https://github.com/kward/shunit2) is required. You can install it via Homebrew.
```zsh
$ ./run_tests
# or run a specific test
$ shunit2 tests/test_lib_fundation.sh
```