Store artifacts as versioned S3 objects