| # Copyright lowRISC contributors. |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| # Azure template for uploading artifacts to a Google Cloud Platform (GCP) |
| # bucket. |
| # |
| # This template first installs gsutil to interact with GCP resources. Then, |
| # files located under parentDir and at paths specified by includeFiles will be |
| # packed into archiveName (a tar.gz file) and uploaded to a GCP bucket located |
| # at bucketURI using gsutil. |
| # |
| # Writing to a GCP bucket requires a GCP service account key with sufficient |
| # permisions. This key must be uploaded to Azure as a Secure File. The name of |
| # the key file should be provided as gcpKeyFile. |
| # |
| |
| parameters: |
| - name: parentDir |
| type: string |
| default: "" |
| - name: includeFiles |
| type: object |
| default: [] |
| - name: gcpKeyFile |
| type: string |
| default: "" |
| - name: bucketURI |
| type: string |
| default: "" |
| |
| steps: |
| - task: DownloadSecureFile@1 |
| name: gcpkey |
| inputs: |
| secureFile: ${{ parameters.gcpKeyFile }} |
| - bash: | |
| echo "Installing gsutil" |
| sudo apt-get install -y apt-transport-https ca-certificates gnupg |
| echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | \ |
| sudo tee /etc/apt/sources.list.d/google-cloud-sdk.list |
| echo "vvvvvvvvv cat /etc/apt/sources.list.d/google-cloud-sdk.list" |
| cat /etc/apt/sources.list.d/google-cloud-sdk.list |
| echo "^^^^^^^^" |
| curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo tee /usr/share/keyrings/cloud.google.gpg |
| sudo apt-get update || { |
| error "Failed to run apt-get update" |
| } |
| sudo apt-get install -y google-cloud-cli |
| |
| . util/build_consts.sh |
| printf "$(date -u +%Y-%m-%dT%H:%M:%S)\n$(Build.SourceVersion)" > latest.txt |
| printf "${{ join('\n', parameters.includeFiles) }}" > include_files.txt |
| tar -C ${{ parameters.parentDir }} -zcvf bitstream-latest.tar.gz -T include_files.txt |
| |
| gsutil -o Credentials:gs_service_key_file=$(gcpkey.secureFilePath) \ |
| cp latest.txt ${{ parameters.bucketURI }}/latest.txt |
| gsutil -o Credentials:gs_service_key_file=$(gcpkey.secureFilePath) \ |
| cp -r bitstream-latest.tar.gz ${{ parameters.bucketURI }}/bitstream-latest.tar.gz |
| gsutil -o Credentials:gs_service_key_file=$(gcpkey.secureFilePath) \ |
| cp -r ${{ parameters.bucketURI }}/bitstream-latest.tar.gz ${{ parameters.bucketURI }}/bitstream-$(Build.SourceVersion).tar.gz |
| condition: succeeded() |
| continueOnError: true |
| displayName: Upload bitstreams to GCP bucket |
| |