Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,15 @@ This repository contains GitHub Actions that are used by various projects at Q42
</tr>
</tbody>
</table>

## Requirements

These actions target iOS/Xcode workflows and must run on a macOS runner (e.g. `runs-on: macos-latest`).
They rely on macOS-only tooling such as `security`, `uuidgen`, and Xcode/keychain paths.

## Versioning

Reference an action by tag:

- `@v1` — a moving major-version tag that tracks the latest release in the `v1` line. Convenient, but the underlying commit changes over time.
- `@v1.0.0` — an immutable tag pinned to a specific release. Prefer this when you need reproducible builds.
14 changes: 12 additions & 2 deletions install-certificate/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
## [install-certificate](https://github.com/q42/actions/blob/main/install-certificate/action.yml)
# [install-certificate](https://github.com/q42/actions/blob/main/install-certificate/action.yml)

Installs the specified certificate in the keychain.
Installs the code signing certificate(s) from a base64-encoded P12 file into a temporary keychain. A P12 may contain more than one certificate; all of them are imported.

## Inputs

| Input | Required | Description |
| --- | --- | --- |
| `build-certificate-base64` | yes | The base64-encoded P12 build certificate. |
| `certificate-password` | yes | The password for the P12 build certificate. |
| `keychain-password` | no | Password for the temporary keychain the certificate is imported into. Defaults to a randomly generated value (`uuidgen`) when unset or empty, which is fine for most CI runs. |

## Example

```yml
- name: Install Certificate
Expand Down
12 changes: 11 additions & 1 deletion install-provisioning-profile/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,20 @@
## [install-provisioning-profile](https://github.com/q42/actions/blob/main/install-provisioning-profile/action.yml)
# [install-provisioning-profile](https://github.com/q42/actions/blob/main/install-provisioning-profile/action.yml)

Installs the specified provisioning profile so that Xcode can use it.

## Inputs

| Input | Required | Description |
| --- | --- | --- |
| `build-provision-profile-base64` | yes | The base64-encoded build provisioning profile. |

## Example

```yml
- name: Install Provisioning Profile
uses: q42/actions/install-provisioning-profile@v1
with:
build-provision-profile-base64: ${{ vars.PROVISIONING_PROFILE_PRODUCTION }}
```

The example reads from `vars` rather than `secrets` because a provisioning profile is not sensitive (it contains no private key). Storing it as a repository/organization variable keeps it out of your secret store; using a secret works too.
17 changes: 13 additions & 4 deletions upload-symbols-to-firebase/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
## [upload-symbols-to-firebase](https://github.com/q42/actions/blob/main/upload-symbols-to-firebase/action.yml)
# [upload-symbols-to-firebase](https://github.com/q42/actions/blob/main/upload-symbols-to-firebase/action.yml)

Uploads dSYM files to Firebase Crashlytics using the `upload-symbols` tool from the Firebase iOS SDK.

The action needs to locate the `upload-symbols` binary, which ships as part of the Firebase iOS SDK SPM package. There are three ways to point it at the tool, in order of precedence: an explicit `upload-symbols-path`, a custom `source-packages-path`, or auto-discovery inside `derived-data-path`.
The action needs to locate the `upload-symbols` binary, which ships as part of the Firebase iOS SDK SPM package.
There are three ways to point it at the tool, in order of precedence: an explicit `upload-symbols-path`, a custom `source-packages-path`, or auto-discovery inside `derived-data-path`.

The `archive-path` parameter should point to an Xcode archive bundle (`.xcarchive`). Any dSYM files contained within this archive will be uploaded to Firebase.
## Inputs

The `google-service-info-plist` specifies the path to the `GoogleService-Info.plist` file for your Firebase project.
| Input | Required | Description |
| --- | --- | --- |
| `derived-data-path` | yes | Path to the Xcode DerivedData directory. Used to discover the `upload-symbols` tool when neither `upload-symbols-path` nor `source-packages-path` is set. |
| `google-service-info-plist` | yes | Path to the `GoogleService-Info.plist` file for the target Firebase project. |
| `archive-path` | yes | Path to the `.xcarchive` bundle. dSYMs are read from its `dSYMs` directory. |
| `source-packages-path` | no | Custom cloned source packages directory (the value passed to `-clonedSourcePackagesDirPath`). Searched for the tool before falling back to the SPM checkout inside `derived-data-path`. |
| `upload-symbols-path` | no | Explicit path to the `upload-symbols` tool. Takes precedence over all discovery strategies. |

## Examples

### Discover via DerivedData

Expand Down