add artifact upload support