Getting Started
Welcome to DecSm.Atom! This guide will walk you through setting up your first Atom-powered build project. Atom provides a powerful, type-safe, and extensible framework for defining your build, test, and deployment pipelines entirely in C#.
Prerequisites
Before you begin, ensure you have the following installed:
.NET SDK 10.0 (recommended, 8.0 or later supported): Atom projects are built with .NET.
(Optional) Git: For version control and triggering workflows. However, atom can also be used without Git.
(Optional) An IDE with C# support: Visual Studio, Rider, or VS Code are recommended, though any text editor with the .NET SDK and CLI will work.
0. (Optional) Install the Atom Tool
While you can run Atom builds using dotnet run, installing the Atom CLI tool provides a more streamlined experience.
dotnet tool install -g DecSm.Atom.Tool1. Set up the Build Definition
Note: The following dotnet commands should be executed in your terminal.
Create a new C# project for your build definition:
dotnet new worker -n _atomAdd the
DecSm.Atompackage to your_atomproject:cd _atom dotnet add package DecSm.Atom dotnet add package DecSm.Atom.GithubWorkflowsDefine your
Buildclass: Create a file namedBuild.csinside the_atomfolder and define your build.// _atom/Build.cs // The DecSm.Atom NuGet package provides global usings for most Atom types. // Mark this class as the build definition and generate an entry point [BuildDefinition] [GenerateEntryPoint] public partial class Build : BuildDefinition { // Define your targets Target MyCustomTarget => t => t .DescribedAs("My first custom Atom target.") .Executes(() => { Logger.LogInformation("Hello from MyCustomTarget!"); }); // Define your workflows here public override IReadOnlyList<WorkflowDefinition> Workflows => [ new("my-workflow") { // Defines the conditions under which the workflow should run Triggers = [ GitPushTrigger.ToMain, GitPullRequestTrigger.IntoMain, ], // Defines the targets that should be executed when the workflow runs Targets = [ // WorkflowTargets.* is a source-generated static class. // Atom automatically creates properties for each defined Target in your Build class, // allowing for convenient access and strong typing. WorkflowTargets.MyCustomTarget, ], // Generate workflows for GitHub Actions WorkflowTypes = [Github.WorkflowType], } ]; }
2. Run Your Build
Note: The following commands should be executed in your terminal from your build project directory (e.g., _atom).
Now you can run your Atom build from the command line.
You should see output similar to:
3. Generate CI/CD Workflows
Note: The following commands should be executed in your terminal from your build project directory (e.g., _atom).
Atom can automatically generate CI/CD workflow files (e.g., GitHub Actions YAML) based on your WorkflowDefinitions.
This will create a .github/workflows directory (if using Github.WorkflowType) containing my-workflow.yml (or whatever you named your workflow).
Next Steps
You've successfully set up and run your first Atom build! To learn more about Atom's capabilities, explore the following guides:
Build Definitions: Understand the core structure of your build.
Targets: Learn how to define and execute units of work.
Parameters: Configure your build with external inputs.
Workflows: Orchestrate your targets for CI/CD.
Build Accessor: Access core services and helpers.
Atom File System: Perform file operations safely.
Process Runner: Execute external commands.
Secrets Management: Handle sensitive data securely.
Workflow Variables: Share data between targets and jobs.
Common Targets: Leverage pre-built targets for common tasks.
Build Information Providers: Customize build ID, version, and timestamp.
Rich Console Output: Enhance your build's console experience.
File Transformation Scopes: Temporarily modify files.
Semantic Versioning: Work with
SemVertypes.Step Failed Exception: Handle build failures gracefully.
Last updated
Was this helpful?
