Artifacts
Store and retrieve build artifacts
Artifacts
Artifacts are files produced by your CI pipeline — compiled binaries, test reports, documentation builds, etc. You can store them and download them later.
Uploading Artifacts
In your runner.yaml, use the upload-artifact action:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: make build
- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: my-app
path: ./build/my-appDownloading Artifacts
Download artifacts from the CI UI:
- Go to your repository's CI tab
- Click on a completed job
- Scroll to the Artifacts section
- Click Download next to the artifact you want
Artifact Configuration
Artifacts are configured in the CI runner's config.yaml. See Configuration for details.
Local Storage
By default, artifacts are stored on the CI runner's filesystem:
artifacts:
storage_type: local
local_path: /app/artifactsS3 Storage
For production, use S3-compatible storage:
artifacts:
storage_type: s3
s3:
endpoint: https://s3.amazonaws.com
bucket: my-ci-artifacts
region: us-east-1
access_key: AKIA...
secret_key: ...Retention
Artifacts are kept for 30 days by default. After that, they're automatically deleted.
To change retention, update the CI runner configuration:
artifacts:
retention_days: 90Size Limits
- Maximum artifact size: 500 MB
- Maximum total artifacts per job: 2 GB
Examples
Upload Test Reports
- name: Run tests
run: npm test -- --reporter=junit --outputFile=test-results.xml
- name: Upload test results
uses: actions/upload-artifact@v4
with:
name: test-results
path: test-results.xmlUpload Multiple Files
- name: Upload build outputs
uses: actions/upload-artifact@v4
with:
name: build-outputs
path: |
./build/my-app
./build/config.yaml
./docs/Upload with Retention
- name: Upload temporary artifact
uses: actions/upload-artifact@v4
with:
name: temp-data
path: ./data/
retention-days: 7