Skip to content
Open
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions BITRISE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Rock iOS Bitrise Step

This Bitrise step enables remote building of iOS applications using [Rock](https://rockjs.dev). It supports both simulator and device builds, with automatic artifact caching and code signing capabilities.

## Usage

```yaml
---
format_version: '23'
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
project_type: react-native
meta:
bitrise.io:
stack: osx-xcode-16.4.x
machine_type_id: g2.mac.large
workflows:
rock-remote-build-ios:
description: 'Rock Remote Build - iOS'
envs:
- WORKING_DIRECTORY: "$BITRISE_SOURCE_DIR"
- DESTINATION: simulator
- SCHEME: RockRemoteBuildTest
- CONFIGURATION: Release
- RE_SIGN: 'false'
- AD_HOC: 'false'
- ROCK_BUILD_EXTRA_PARAMS: ''
- CERTIFICATE_BASE64: ''
- CERTIFICATE_PASSWORD: ''
- PROVISIONING_PROFILE_BASE64: ''
- PROVISIONING_PROFILE_NAME: ''
- KEYCHAIN_PASSWORD: ''
steps:
- activate-ssh-key@4: {}
- git-clone@8: {}
- npm@1:
title: npm install
inputs:
- workdir: "$WORKING_DIRECTORY"
- command: install
- git::https://github.com/callstackincubator/ios@main:
title: Rock Remote Build - iOS
inputs:
- WORKING_DIRECTORY: "$WORKING_DIRECTORY"
- DESTINATION: "$DESTINATION"
- SCHEME: "$SCHEME"
- CONFIGURATION: "$CONFIGURATION"
- RE_SIGN: "$RE_SIGN"
- AD_HOC: "$AD_HOC"
- ROCK_BUILD_EXTRA_PARAMS: "$ROCK_BUILD_EXTRA_PARAMS"
- CERTIFICATE_BASE64: "$CERTIFICATE_BASE64"
- CERTIFICATE_PASSWORD: "$CERTIFICATE_PASSWORD"
- PROVISIONING_PROFILE_BASE64: "$PROVISIONING_PROFILE_BASE64"
- PROVISIONING_PROFILE_NAME: "$PROVISIONING_PROFILE_NAME"
- KEYCHAIN_PASSWORD: "$KEYCHAIN_PASSWORD"
```

## Bitrise Inputs

| Input | Description | Required | Default |
| ----------------------------- | ------------------------------------------------------------------------------- | -------- | ----------- |
| `WORKING_DIRECTORY` | Working directory for the build command | No | `.` |
| `DESTINATION` | Build destination: "simulator" or "device" | Yes | `simulator` |
| `SCHEME` | Xcode scheme | Yes | - |
| `CONFIGURATION` | Xcode configuration | Yes | - |
| `RE_SIGN` | Re-sign the app bundle with new JS bundle | No | `false` |
| `AD_HOC` | Upload the IPA for ad-hoc distribution to easily install on provisioned devices | No | `false` |
| `CERTIFICATE_BASE64` | Base64 encoded P12 file for device builds | No | - |
| `CERTIFICATE_PASSWORD` | Password for the P12 file | No | - |
| `PROVISIONING_PROFILE_BASE64` | Base64 encoded provisioning profile | No | - |
| `PROVISIONING_PROFILE_NAME` | Name of the provisioning profile | No | - |
| `KEYCHAIN_PASSWORD` | Password for temporary keychain | No | - |
| `ROCK_BUILD_EXTRA_PARAMS` | Extra parameters for rock build:ios | No | - |

## Bitrise Outputs

| Output | Description |
| -------------- | ------------------------- |
| `ARTIFACT_URL` | URL of the build artifact |
| `ARTIFACT_ID` | ID of the build artifact |

## License

MIT
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Rock iOS GitHub Action
# Rock iOS Workflow

This GitHub Action enables remote building of iOS applications using [Rock](https://rockjs.dev). It supports both simulator and device builds, with automatic artifact caching and code signing capabilities.
This repository provides workflows for building iOS applications using [Rock](https://rockjs.dev). It supports both simulator and device builds, with automatic artifact caching and code signing capabilities.

## Features

Expand All @@ -11,7 +11,10 @@ This GitHub Action enables remote building of iOS applications using [Rock](http
- Native fingerprint-based caching
- Configurable build parameters

## Usage
> [!NOTE]
> **Looking for Bitrise?** See [BITRISE.md](./BITRISE.md) for Bitrise-specific documentation.

## GitHub Actions Usage

```yaml
name: iOS Build
Expand Down Expand Up @@ -44,7 +47,7 @@ jobs:
# ad-hoc: true
```

## Inputs
## GitHub Actions Inputs

| Input | Description | Required | Default |
| ----------------------------- | ------------------------------------------------------------------------------- | -------- | ----------- |
Expand All @@ -63,7 +66,7 @@ jobs:
| `rock-build-extra-params` | Extra parameters for rock build:ios | No | - |
| `comment-bot` | Whether to comment PR with build link | No | `true` |

## Outputs
## GitHub Actions Outputs

| Output | Description |
| -------------- | ------------------------- |
Expand Down
55 changes: 55 additions & 0 deletions bitrise.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
format_version: '23'
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
project_type: react-native
meta:
bitrise.io:
stack: osx-xcode-16.4.x
machine_type_id: g2.mac.large
workflows:
rock-remote-build-ios:
description: 'Install and build iOS app with Rock'
envs:
- WORKING_DIRECTORY: "$BITRISE_SOURCE_DIR"
- DESTINATION: simulator
- SCHEME: ReactNativeRocks
- CONFIGURATION: Release
- RE_SIGN: 'false'
- AD_HOC: 'false'
- ROCK_BUILD_EXTRA_PARAMS: ''
- CERTIFICATE_BASE64: ''
- CERTIFICATE_PASSWORD: ''
- PROVISIONING_PROFILE_BASE64: ''
- PROVISIONING_PROFILE_NAME: ''
- KEYCHAIN_PASSWORD: ''
steps:
- activate-ssh-key@4: {}
- git-clone@8: {}
- npm@1:
title: npm install
inputs:
- workdir: "$WORKING_DIRECTORY"
- command: install
- git::https://github.com/callstackincubator/ios@main:
title: Rock Remote Build - iOS
inputs:
- WORKING_DIRECTORY: "$WORKING_DIRECTORY"
- DESTINATION: "$DESTINATION"
- SCHEME: "$SCHEME"
- CONFIGURATION: "$CONFIGURATION"
- RE_SIGN: "$RE_SIGN"
- AD_HOC: "$AD_HOC"
- ROCK_BUILD_EXTRA_PARAMS: "$ROCK_BUILD_EXTRA_PARAMS"
- CERTIFICATE_BASE64: "$CERTIFICATE_BASE64"
- CERTIFICATE_PASSWORD: "$CERTIFICATE_PASSWORD"
- PROVISIONING_PROFILE_BASE64: "$PROVISIONING_PROFILE_BASE64"
- PROVISIONING_PROFILE_NAME: "$PROVISIONING_PROFILE_NAME"
- KEYCHAIN_PASSWORD: "$KEYCHAIN_PASSWORD"
- script@1:
title: Show Step Outputs
inputs:
- content: |-
#!/usr/bin/env bash
set -e
echo "ARTIFACT_URL=${ARTIFACT_URL:-<empty>}"
echo "ARTIFACT_ID=${ARTIFACT_ID:-<empty>}"
Loading