The message include which project, which branch, which commit I need this building process to happen on and which build config I want to use.
Obviously, my CI/CD isn't really continuous because it doesn't build on every commit, it only does when I send the command.
My projects are iOS apps, comparing to deploy a web app, it's kind of heavy to deploy an iOS build: there is the '.ipa' file needs to be uploaded, App Store Connect needs to process every build, internal testers will receive notifications to update, and all the builds will clutter the dashboard. That's why I only want the deployment to happen based on my commands.
The build configs are identified by the combination of the project name and the config name.
As you can see from the example snapshot of a build config file. It defines configurations like Xcode version, provisioning profile, destination (TestFlight or App Center adhoc), etc.
The build hasn't started yet, the bot needs to set the config first (this is how App Center API works).
The bot triggers the build and App Center build will be configured as the build config the bot sent in the previous step.
App Center responses to the bot if the build config was set successfully and if the build started successfully.
The bot will notify me the response it gets from the App Center.
App Center builds the project and uploads the artifact ('.ipa' file) to the destination (App Store Connect or App Center Releases).
Once the App Center finishes building and uploading, it will notify the Telegram bot through a webhook.
The bot will notify me the result of the build.