All Projects → buildkite-plugins → artifacts-buildkite-plugin

buildkite-plugins / artifacts-buildkite-plugin

Licence: MIT license
🆙 Automatically upload and download artifacts

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to artifacts-buildkite-plugin

ecr-buildkite-plugin
🔐 Login to an AWS ECR registry
Stars: ✭ 24 (-7.69%)
Mutual labels:  buildkite, buildkite-plugin
docker-compose-buildkite-plugin
🐳⚡️ Run build scripts, and build + push images, w/ Docker Compose
Stars: ✭ 137 (+426.92%)
Mutual labels:  buildkite, buildkite-plugin
docker-buildkite-plugin
🐳📦 Run any build step in a Docker container
Stars: ✭ 90 (+246.15%)
Mutual labels:  buildkite, buildkite-plugin
junit-annotate-buildkite-plugin
📈 Summarise your test failures as a build annotation
Stars: ✭ 18 (-30.77%)
Mutual labels:  buildkite, buildkite-plugin
k8s-buildkite-plugin
Run any buildkite build step as a Kubernetes Job
Stars: ✭ 37 (+42.31%)
Mutual labels:  buildkite, buildkite-plugin
github-merged-pr-buildkite-plugin
BuildKite plugin to work with GitHub PRs
Stars: ✭ 24 (-7.69%)
Mutual labels:  buildkite-plugin
aws-sm-buildkite-plugin
Buildkite plugin for working with AWS Secrets Manager
Stars: ✭ 38 (+46.15%)
Mutual labels:  buildkite-plugin
pybuildkite
A Python library for the Buildkite API
Stars: ✭ 29 (+11.54%)
Mutual labels:  buildkite
on-demand
CloudFormation resources for scheduling On-Demand Buildkite Agents with AWS ECS and AWS Fargate
Stars: ✭ 19 (-26.92%)
Mutual labels:  buildkite
gitea-buildkite-connector
Connect Gitea & Buildkite
Stars: ✭ 16 (-38.46%)
Mutual labels:  buildkite
buildkite-jobify
👷 Kubekite, but in Rust, using configuration from your repos 🦀
Stars: ✭ 16 (-38.46%)
Mutual labels:  buildkite
buildkite-agent-scaler
📈A lambda for scaling an AutoScalingGroup based on Buildkite metrics
Stars: ✭ 25 (-3.85%)
Mutual labels:  buildkite
bksr
Run and test your Buildkite pipeline steps locally, just as they'd run in CI (discontinued)
Stars: ✭ 22 (-15.38%)
Mutual labels:  buildkite
knapsack pro-ruby
Knapsack Pro gem splits tests across parallel CI nodes and makes sure that tests will run in optimal time on each node.
Stars: ✭ 101 (+288.46%)
Mutual labels:  buildkite
golang-docker-example
An example of how to run a Golang project in Docker in a Buildkite pipeline
Stars: ✭ 18 (-30.77%)
Mutual labels:  buildkite
rails-docker-parallel-example
An example of how to run Rails CI and test steps in parallel with Docker and Buildkite
Stars: ✭ 19 (-26.92%)
Mutual labels:  buildkite
nodejs-docker-example
An example of how to run a Node.js project in Docker in a Buildkite pipeline
Stars: ✭ 39 (+50%)
Mutual labels:  buildkite

Artifacts Buildkite Plugin Build status

A Buildkite plugin for uploading and downloading artifacts.

Uploading artifacts

This functionality duplicates the artifact_paths property in the pipeline yaml files; with the difference that it also allows downloading artifacts and that this plugin is executed before any command hook, so you can create dependencies on artifacts in your steps that are resolved before the actual step is executed. This is ideal for producing an artifact in one job and then downloading it in a different job before execution.

steps:
  - command: ...
    plugins:
    - artifacts#v1.5.0:
        upload: "log/**/*.log"

or

steps:
  - command: ...
    plugins:
    - artifacts#v1.5.0:
        upload: [ "log/**/*.log", "debug/*.error" ]

or

steps:
  - command: ...
    plugins:
    - artifacts#v1.5.0:
        upload: 
          from: log1.log
          to: log2.log

or

steps:
  - command: ...
    plugins:
    - artifacts#v1.5.0:
        upload: 
        - from: log1.log
          to: log2.log

User-defined ACL on uploaded files

When using AWS S3 or Google Cloud Storage as your artifact store, you can optionally define an object-level ACL for your uploaded artifacts. This allows you to have granular control over which artifacts are made public or private.

If not specified it will respect the relevant setting at the agent level.

eg: uploading a public file when using S3

steps:
  - command: ...
    plugins:
    - artifacts#v1.5.0:
        upload: "coverage-report/**/*"
        s3-upload-acl: public-read

eg: uploading a private file when using GS

steps:
  - command: ...
    plugins:
    - artifacts#v1.5.0:
        upload: "coverage-report/**/*"
        gs-upload-acl: private

Downloading artifacts

This downloads artifacts matching globs to the local filesystem. See downloading artifacts for more details.

steps:
  - command: ...
    plugins:
      - artifacts#v1.5.0:
          download: "log/**/*.log"

or

steps:
  - command: ...
    plugins:
      - artifacts#v1.5.0:
          download: [ "log/**/*.log", "debug/*.error" ]

or

steps:
  - command: ...
    plugins:
      - artifacts#v1.5.0:
          download: 
            from: log1.log
            to: log2.log

or

steps:
  - command: ...
    plugins:
      - artifacts#v1.5.0:
          download: 
          - from: log1.log
            to: log2.log

Configuration

upload (string, array of strings, {from,to}, array of {from,to})

A glob pattern, or array of glob patterns, for files to upload.

download (string, array of strings, {from,to}, array of {from,to})

A glob pattern, or array of glob patterns, for files to download.

step (optional, string)

The job UUID or name to download the artifact from.

build (optional, string)

The build UUID to download the artifact from.

compressed (optional, string)

Limitations:

  • filename needs to end with .zip or .tgz and that will determine the compression executable to use
  • path globs (*) are interpreted by agent's shell and (un)compressing program (meaning that probably ** will not work)

When uploading, globs specified in the upload option will be compressed in a single file with this name and uploaded as a single artifact. The following example will get all files matching log/*.log, zip them up and upload a single artifact file named logs.zip:

steps:
  - command: ...
    plugins:
    - artifacts#v1.5.0:
        upload: "log/*.log"
        compressed: logs.zip

When downloading, this option states the actual name of the artifact to be downloaded and globs in the download option will be extracted off of it. The following example will download the logs.tgz artifact and extract all files in it matching log/*.log:

steps:
  - command: ...
    plugins:
      - artifacts#v1.5.0:
          download: "log/*.log"
          compressed: logs.tgz

Relocation

If a file needs to be renamed or moved before upload or after download, a nested object is used with to and from keys. At this time, this can only be used with single files and does not support glob patterns.

Developing

To run testing, shellchecks and plugin linting use use bk run with the Buildkite CLI.

bk run

Or if you want to run just the tests, you can use the Docker Compose CLI:

docker-compose run --rm tests

License

MIT (see LICENSE)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].