I practiced this and I could easily release builds to TestFilght for internal testing, and few clicks on Github to have new build for App Store submission.

Preparation:

Once created new project in Xcode, immediately push it to Github to create a new repository as origin. Here we can use the default main branch.At Github, create a new branch: dev.At Xcode, switch to dev, and we will always push changes to dev.

At Xcloud Cloud, we will define two workflows. We will trigger them with different conditions for different purposes.

Workflow 1: For track dev branch change, and for TestFlight

Trigger: any file change at dev branch.Action is to build, and distribute for TestFlight (internal test)Post action is TestFlight internal test, choose the tester group (define separately)

So, whenever you push to dev branch, will have a new build delivered to TestFlight for your internal testing. Very convenient.

Workflow 2 - For app store distribution

Trigger: any file change at main branchAction is build: app store connect.No post action

Usually you don’t trigger this. If you want to release it to App Store after some nice build, you:

At Github, create a Pull Request to merge dev into main.When reply, use Merge.

When dev branch is merged into main, it will trigger Workflow 2. Result is that a new build is created for app store.

You go to App Store Connect page, at release page, pick up this build and assign it to release. 

Happy coding!