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:
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:
- If you create a release for the
nightly
tag, the new version will land in the nightly release channel. - If you set the pre-release flag on a release, the new version will land in the beta release channel.
- 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.