Skip to main content

Artifact Store

The artifact store is an essential part of any pipeline. This document describes the artifact store's features and how to upload and download your own artifacts.

Overview#

The artifact store provides long-term storage for artifacts. Artifacts are files or folders that have been produce by workflows or uploaded by users. The artifact store means users can:

  • Have a single source of truth for a FPGA design's files and folders.
  • Download files once a workflow has finished
  • Upload files for use in workflows.

artifact-store-3

Uploading artifacts#

To upload a file as an artifact to the store, click the 'upload file' button. You will then be able to upload a file as well as declare an Artifact type. Types determine the usage of the artifact and are used to determine if a specific file location must be used. The artifact types available are:

  • Platform: Used for uploading hardware platforms to be used in software-defined environments.
    • When used in a runner containing Vitis Unified Development Environment, platforms are be default downloaded into the /tools/Xilinx/Vitis/2020.1/platforms. Platform folders must be compressed into a .zip before upload.
  • Firmware: Used for uploading files for use in firmware, such as sysroot.
    • When used in a runner, firmware files are downloaded to the workspace folder. Firmware folders must be compressed into a .zip before upload.
  • Library: Used for uploading library files, such as the Vitis library.
    • When used in a runner, library files are downloaded to the workspace folder. Library folders must be compressed into a .zip before upload.
  • Build: Used for distinguishing files that have been created by a build job.
    • When used in a runner, build files are downloaded to the workspace folder. Build folders must be compressed into a .zip before upload.
  • Board: Used for uploading board files for use in hardware. Vivado that have been created by a build job.
    • When used in a runner containing Vivado, platforms are be default downloaded into the /tools/Xilinx/Vivado/2020.1/data/boards/board_files. Board folders must be compressed into a .zip before upload.
  • Miscellaneous: Used for files that have been created by a build job.
    • When used in a runner, build files are downloaded to the workspace folder.

Uploading platform artifact#

To upload a platform artifact, you must first either create your own platform or download a pre-made platform from Xilinx . This folder must be compressed to .zip folder.

artifact-store-1

In File Upload page, choose the file you wish to download and ensure the artifact type is Platform. Click submit to begin uplaoding. Since platform files are large, this process may take a few minutes.

artifact-store-2

Once finished you will be redirected to the artifact store and able to see your file uploaded.

Using artifacts as input in a job#

Artifacts within the store may be used as inputs to jobs. Within the job the key input: followed by the artifact: and a list of the artifacts is used to indicate the artifacts that are to be placed on the runner. The location of where the artifact is placed is dependent upon the artifacts type.

In the following example, the artifact example-1.txt is used in the job build-SW-emu. If the artifact is type miscellaneous, it will be placed in the current working directory, which by default ~/.

jobs:    build-SW-emu:  runner:   ...  input:    artifact:     - example-1.txt  steps:   ...

Outputting artifacts from a job#

Files that are generated by a job can be stored as an artifact. The artifact is located relative to the current working directory, which by default ~/. Absolute directories may also be used.

jobs:    build-SW-emu:  runner:   ...  output:    artifact:     - example-1.txt  steps:   ...