Skip to content

GitHub

There are two different options available for updating the app information on SideStore Connect right from your GitHub repository. The first option, GitHub Actions, can be used to host the app build on SideStore Connect. With the second option, the GitHub Release webhook, the app build on GitHub is linked to your app on SideStore Connect.

GitHub Action

To upload the app build to SideStore Connect right from your GitHub Actions workflow, you can use the SideStore-Connect/action action in your workflow as described below:

.github/workflows/upload.yml
yaml
name: Upload Build to SideStore Connect

on: tag

jobs:
  upload:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@master

      ...
      # Build the app
      ...
    
      - name: Upload build
        uses: SideStore-Connect/action@master
        with:
          instance_url: https://connect.sidestore.io
          access_token: ${{ secrets.ACCESS_TOKEN }}
          app_bundle_id: com.test.TestApp
          app_version: 1.0.0
          release_channel: stable
          version_description: |
            This is a version description.
            Version descriptions can span multiple lines.
          publish: false
          app_file: ./App.ipa
name: Upload Build to SideStore Connect

on: tag

jobs:
  upload:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@master

      ...
      # Build the app
      ...
    
      - name: Upload build
        uses: SideStore-Connect/action@master
        with:
          instance_url: https://connect.sidestore.io
          access_token: ${{ secrets.ACCESS_TOKEN }}
          app_bundle_id: com.test.TestApp
          app_version: 1.0.0
          release_channel: stable
          version_description: |
            This is a version description.
            Version descriptions can span multiple lines.
          publish: false
          app_file: ./App.ipa

This code snipped assumes that you've set up a repository secret with the name ACCESS_TOKEN and a Personal Access Token as the value in the "Actions" page of the "Secrets and variables" section in your repository settings.
The instance_url parameter of the action refers to the base url of the SideStore Connect instance where you manage your app. At this time, this should be the official SideStore Connect instance at https://connect.sidestore.io, which means this parameter can also be omitted.
The app_bundle_id is the bundle identifier of the app, uniquely identifying it in the SideStore Connect instance.
The app_version is the new version in the release channel release_channel (default: stable) of the app build that should be uploaded. By default, a new version with the specified version number is created if it didn't already exist. Otherwise, the existing app version will be updated. If you want to prevent the GitHub Action from creating a new app version in SideStore Connect, set the parameter allow_create_new_version to false (default: true).
The version_description is optional.
If you want to submit the new app build for review automatically, set the parameter publish to true (default: false).
Lastly, you need to specify the path to the compiled .ipa file in the app_file parameter value.

GitHub Webhooks

Releases

To notify SideStore Connect about new releases, create a new webhook in your GitHub repository.
Set the payload url to

https://connect.sidestore.io/webhook/github/release/<app_bundle_identifier>
https://connect.sidestore.io/webhook/github/release/<app_bundle_identifier>

where connect.sidestore.io is your instance domain and <app_bundle_identifier> is the bundle identifier of your app as defined in SideStore Connect.
Select application/json as the content type for the webhook request. To enable authentication, create a new Personal Access Token and paste it into the secret field of the GitHub webhook. Under "Which events would you like to trigger this webhook?" select "Let me select individual events." and make sure that only "Releases" is selected. Save the webhook.

GitHub will send a ping to the SideStore Connect webhook endpoint, which should return a 200 response with a confirmation message in the body.

Creating a Release

When you create a new release in GitHub, you can indirectly select for which release channel the new release version will for created:

  1. If you create a release for the nightly tag, the new version will land in the nightly release channel.
  2. If you set the pre-release flag on a release, the new version will land in the beta release channel.
  3. Otherwise, the new version will land in the stable release channel.

SideStore Connect will create draft app versions for drafted releases and publishes fully released versions.

Please Note

Although different nightly versions can be created in SideStore Connect, the GitHub webhook will only update the latest version and replace the previous download url with the new one. Also, you have to create a nightly version once manually which will then be updated with new nightly releases via the webhook.

Copyright © 2024 SideStore Connect. All Rights Reserved.