| # 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 |