appcenter-auto-builder
v1.3.1
Published
This project provides an all-in-one script for Microsoft AppCenter: https://appcenter.ms/
Downloads
32
Maintainers
Readme
Introduction
This project provides an all-in-one script for Microsoft AppCenter: https://appcenter.ms/
This script automates the whole flow to create project, connect repo, configure build settings, and generate mobile apps.
Installation
With Node environment, add this script to your dev dependencies.
npm install appcenter-auto-builder --save-dev
yarn add appcenter-auto-builder --dev
pnpm add appcenter-auto-builder -D
Usage - AppCenterBuilder
With a proper AppCenterBuilderConfiguration
config, you can run it with AppCenterBuilder
.
It returns a Promise
, which resolves when the build succeeds, or rejects when errors occur.
The resolved object is an AppCenterBuildContext
, with which you can handle the bundle, disconnect the repo, etc.
import {AppCenterBuilderConfiguration, AppCenterBuilder} from "appcenter-auto-builder";
const config: AppCenterBuilderConfiguration = {
apiToken: "<Your API Token>",
project: {
name: "test-react-native-ios",
os: "iOS",
platform: "React-Native",
},
repo: {
url: "https://github.com/dionshihk/some-ios-project",
},
owner: {
type: "individual",
name: "<Your Account Name>",
},
buildSetting: {
trigger: "manual",
artifactVersioning: {buildNumberFormat: "buildId"},
environmentVariables: [
{name: "TEST_ENV_1", value: "1"},
{name: "TEST_ENV_2", value: Date.now().toString()},
],
toolsets: {
javascript: {
packageJsonPath: "package.json",
nodeVersion: "12.x",
},
xcode: {
....
},
},
},
};
new AppCenterBuilder(config).build();
To learn more about AppCenterBuilderConfiguration
interface, please read type.d.ts
, with proper comments.
Usage - AppCenterCleaner
With a proper AppCenterCleanerConfiguration
config, you can run it with AppCenterCleaner
.
There will be a Cli prompt for confirmation of deletion, type yes
to proceed, no
to exit.
import {AppCenterCleaner, AppCenterCleanerConfiguration} from "appcenter-auto-builder";
const config: AppCenterCleanerConfiguration = {
apiToken: "<Your API Token>",
owner: {
type: "individual",
name: "<Your Account Name>",
},
projectFilter: appCenterProjects => ["my-unwanted-project"],
};
new AppCenterCleaner(config).clean();
Demo Code
Complete TypeScript examples (with async usage) can be found here: https://github.com/dionshihk/appcenter-auto-builder/blob/master/test/
Good To Know
You are strongly suggested trying to create a project from scratch on AppCenter manually. Because of:
Connect to your repo (
BitBucket/Github
) at least once manually, to authorize your AppCenter account with OAuth. This step cannot be done with pure script.Learn the complicated build configuration data structure of iOS/Android project. The official API specification is not well-documented. GET
/v0.1/apps/{ownerName}/{appName}/repo_config
to find out the meaning of each field, in corresponding withtype.ts/BuildConfiguration
interface.Build the app once, to figure out a great number for
AppCenterBuilderConfiguration.buildEstDuration
.