blob: abd0d499537df7f587a7f8b5f928fc83c76a2330 [file] [log] [blame] [edit]
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
# Azure template for downloading pipeline step outputs and unpacking them.
#
# This template will download all artifacts from the upstream jobs listed in
# `downloadPartialBuildBinFrom` (which are expected to use
# upload-artifacts-template.yml) and unpack them.
#
# This template expects that a variable $BUILD_ROOT is set to a writeable
# directory; the results will be available in $BIN_DIR. See
# util/build_consts.sh for more information.
parameters:
# Names of jobs to download a partial $BIN_DIR from.
# List all "upstream" jobs here which produce files in $BIN_DIR which are
# needed in the current job. In other words, list all jobs which need to be
# executed and produce some build outputs before this job can start. The
# current job will find all outputs from those upstream jobs in $BIN_DIR and
# can use them.
- name: downloadPartialBuildBinFrom
type: object
default: []
steps:
- ${{ each job in parameters.downloadPartialBuildBinFrom }}:
- task: DownloadPipelineArtifact@2
inputs:
buildType: current
path: '$(BUILD_ROOT)/downloads/${{ job }}'
artifact: "partial-build-bin-${{ job }}"
displayName: Downloading partial build-bin directory from job ${{ job }}
- bash: |
set -e
test -n "$BUILD_ROOT"
. util/build_consts.sh
test -f "$BUILD_ROOT/upstream_bin_dir_contents.txt" && {
echo The download-artifacts-template.yml template can be called only once per job.
exit 1
}
mkdir -p "$BIN_DIR"
echo 'Extracting partial BIN_DIRs:'
find "$BUILD_ROOT/downloads" \
-name 'build-bin.tar' \
-exec \
tar -C "$BIN_DIR" \
--strip-components=1 \
-xvf {} \;
# Remember all files which were present in the upstream $BIN_DIRs.
find "$BIN_DIR" -type f -fprintf "$BUILD_ROOT/upstream_bin_dir_contents.txt" '%P\n'
echo
echo Upstream BIN_DIR contents:
echo vvvvvvvvvvvvvvvvvv
cat "$BUILD_ROOT/upstream_bin_dir_contents.txt"
echo ^^^^^^^^^^^^^^^^^^
displayName: Unpack upstream outputs