Skip to content
This repository has been archived by the owner on Sep 13, 2021. It is now read-only.

A set of convention based Cake scripts for building and deploying Xamarin Mobile Applications

License

Notifications You must be signed in to change notification settings

RocketSurgeonsGuild/Xamarin.Recipe

Repository files navigation

Xamarin.Recipe

Xamarin.Recipe is a set of convention based scripts for building and deploying Xamarin mobile applications. Most of the code, conventions and concepts for this came from Cake.Recipe

License

Information

Stable Pre-release
GitHub Release GitHub release
NuGet NuGet NuGet

Build Status

dev main
Build status Build status
Build Status Build Status

Sample Script

iOS

#load nuget:?package=Rocket.Surgery.Xamarin.Recipe&version=0.5.0

Environment.SetVariableNames();

BuildParameters.SetParameters(
        context: Context,
        buildSystem: BuildSystem,
        sourceDirectoryPath: "./src",
        title: "My.Recipe.Project",
        solutionFilePath: "./Recipe.sln",
        solutionDirectoryPath: "./",
        iosProjectPath: "./src/Recipe.iOS/Recipe.iOS.csproj",
        plistFilePath: "./src/Recipe.iOS/Info.plist",
        platform: "iPhone",
        rootDirectoryPath: "./",
        testDirectoryPath: "./tests",
        unitTestWhitelist: new[] { "./tests/Recipe/Recipe.csproj" },
        integrationTestScriptPath: "./tests/integration/test.cake",
        repositoryOwner: "GitHubUserName",
        repositoryName: "GitHubRepository",
        appVeyorAccountName: "AppVeyorAccount",
        appVeyorProjectSlug: "SLUG",
        isPublicRepository: false,
        shouldRunGitVersion: true,
        shouldDeployAppCenter: false,
        shouldCopyImages: false,
        shouldRunxUnit: true,
        shouldRunUnitTests: true,
        shouldRunFastlaneMatch = false,
        buildNumber: 0,
        mainBranch: "main",
        devBranch: "dev",
        nugetConfig: "./NuGet.config",
        nuGetSources: new[] { "nuget.org", "myget.org" });

BuildParameters.PrintParameters(Context);

ToolSettings.SetToolSettings(context: Context, msBuildToolVersion: MSBuildToolVersion.NET40);

Build.RuniOS();

Android

#load nuget:?package=Rocket.Surgery.Xamarin.Recipe&version=0.5.0

Environment.SetVariableNames();

BuildParameters.SetParameters(
        context: Context,
        buildSystem: BuildSystem,
        sourceDirectoryPath: "./src",
        title: "My.Recipe.Project",
        solutionFilePath: "./Recipe.sln",
        solutionDirectoryPath: "./",
        androidProjectPath: "./src/Recipe.Android/Recipe.Android.csproj",
        androidManifest: "./src/Recipe.Android/Properties/AndroidManifest.xml",
        rootDirectoryPath: "./",
        testDirectoryPath: "./tests",
        unitTestWhitelist: new[] { "./tests/Recipe/Recipe.csproj" },
        integrationTestScriptPath: "./tests/integration/test.cake",
        repositoryOwner: "GitHubUserName",
        repositoryName: "GitHubRepository",
        appVeyorAccountName: "AppVeyorAccount",
        appVeyorProjectSlug: "SLUG",
        isPublicRepository: false,
        shouldRunGitVersion: true,
        shouldDeployAppCenter: false,
        shouldCopyImages: false,
        shouldRunxUnit: true,
        shouldRunUnitTests: true,
        shouldRunFastlaneMatch = false,
        buildNumber: 0,
        mainBranch: "main",
        devBranch: "dev",
        nugetConfig: "./NuGet.config",
        nuGetSources: new[] { "nuget.org", "myget.org" });

BuildParameters.PrintParameters(Context);

ToolSettings.SetToolSettings(context: Context);

Build.Android();