Skip to content

Sherpa Bundles with CI - install, build, & deploy #168

Description

@aritchie

We use MAUI Sherpa to build a bundle containing environments, secrets, profiles, certificates, & more. WE then encrypt that - pass the bundle anywhere to build, including your CI services (GitHub, AzDo, etc).

Bundle Internals - Initial thoughts for "Install" phase

{
    "Variables": {
        "SentryDsn": "https://myapp"
    },
    "Production": {
        "Variables":{
            "Hello" : "World",
            "BaseUrl": "https://myapi.com",
            "SentryDsn": "https://myapp.production"
        },
        "Android": {
            "Keystore": "base64 encoded keystore file",
            "KeyAlias": "key alias",
            "KeyPassword": "key password",
            "Variables":{
                "Hello": "Android World",
                "FirebaseApiKey": "firebase api key"
            }
        },
        "iOS":{
            "ProvisioningProfile": "base64 encoded provisioning profile",
            "Certificate": "base64 encoded certificate",
            "CertificatePassword": "certificate password",
            "Variables":{
                "Hello": "iOS World"
            }
        },
        "MacOS": {
            "ProvisioningProfile": "base64 encoded provisioning profile",
            "Certificate": "base64 encoded certificate",
            "CertificatePassword": "certificate password",
            "Variables":{
                "Hello": "MacOS World"
            }
        },
        "MacCatalyst": {
            "ProvisioningProfile": "base64 encoded provisioning profile",
            "Certificate": "base64 encoded certificate",
            "CertificatePassword": "certificate password",
            "Variables":{
                "Hello": "MacCatalyst World"
            }
        },
        "Windows": {
            "Certificate": "base64 encoded certificate",
            "CertificatePassword": "certificate password",
            "Variables":{
                "Hello": "Windows World"
            }
        }
    },
    "Development": {
    }
}

CLI Thoughts

sherpacli.exe myproject.sherpabundle -environment:production -platform:android/ios/windows/etc (multiple - what about parallel builds?)
- action: install, build, deploy OR all OR multiple

TODO

  1. Deployments
  2. Builds
  3. Versioning

Need to consider the following output variables from different phases

  • Build phase should output the ipa/exe/aab file path

This feature could/should overlap with #129

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions