> ## Documentation Index
> Fetch the complete documentation index at: https://docs.maia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Artifacts

export const maia = "Maia";

An artifact is an immutable collection of resources (e.g. pipelines and script files) that is built as a compilation of executable assets and deployed to the specified environment when you publish. An artifact is built from a specific commit within the source code in your Git repository. Once published, the artifact is independent from the source code and is the version of a pipeline that is run by a schedule. Artifacts allow data team leaders to manage releases of published versions of their pipelines.

***

## Video example

<iframe width="560" height="315" src="https://www.youtube.com/embed/GIPrRK-wxlc?si=j9v089zH6EoH41Jk&enablejsapi=1" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen />

***

## Create an artifact

To make your pipelines available for scheduling, create an artifact by making commits, pushing your changes, and publishing.

1. Click the name of your branch on the project bar.
2. Click **Push local changes** in the drop-down menu. The number displayed next to this option shows the number of committed changes that haven't been pushed yet. The **Push local changes** panel will open, displaying the list of local commits that you can push to remote.
3. Select the **Publish** checkbox and complete the required fields.
4. Click **Push & Publish** to save all your local commits to the remote repository and create an artifact. Otherwise, click **Cancel** to cancel your push and publish operation.

<Note>
  To create artifacts programmatically, you can use the [Maia API](/docs/api-reference/maia-api-overview). For detailed instructions, refer to the documentation [Creating artifacts with the API](/docs/api-reference/creating-artifacts-with-the-api#create-an-artifact).
</Note>

After pushing your changes and publishing your pipelines, you can then create a schedule to run either the latest version of a pipeline, or a specific version of a pipeline. View and deploy artifacts to other environments in the **Artifacts** tab in your project.

<Note>
  The version name that you choose when publishing must be unique, because it will be used to identify the artifact that will be built and deployed to the specified environment.

  We recommend using a semantic versioning naming scheme that uses a combination of major and minor version numbers to track subsequent versions. For example, `0.1`, `0.2`, `1.0`, `1.1`, `2.0`, and so on.
</Note>

***

## View artifacts

After publishing your pipelines based on the latest pushed code in your Git repository, you can view the artifacts that have been published in your project.

1. From the **Your projects** menu, select your project.
2. Navigate to the **Artifacts** tab.
3. Select the environment you want to view.

The following information is shown for each artifact:

| Property    | Description                                                                                                         |
| ----------- | ------------------------------------------------------------------------------------------------------------------- |
| Name        | The name you entered in the **Version name** field when you pushed and published changes to a specific environment. |
| Commit      | The commit hash the artifact was built from (if you have connected your own Git repository to {maia}).              |
| Deployed on | Timestamp that shows when the artifact was deployed to the selected environment.                                    |
| Created by  | The user who created the artifact.                                                                                  |

***

## Deploy an artifact to a different environment

After validating and testing in your development or test environment, you can then deploy the same artifact to a different environment. You must have an [environment role](/docs/administration/environment-roles) with the **Promote Artifacts** permission in the environment you wish to deploy the artifact to.

1. From the **Your projects** menu, select your project.
2. Navigate to the **Artifacts** tab.
3. Select the environment that contains the artifact you want to deploy.
4. Click the three dots **...** on the corresponding row of the artifact.
5. Click **Deploy to environment**.
6. In the **Deploy to environment** dialog, select the environment you want to deploy the artifact to.
7. Click **Deploy**.
