diff --git a/.github/workflows/debos.yml b/.github/workflows/debos.yml index ff787b0a..304a0648 100644 --- a/.github/workflows/debos.yml +++ b/.github/workflows/debos.yml @@ -117,7 +117,9 @@ jobs: - name: Build flashable files with debos run: | set -ux - debos -t u_boot_rb1:rb1-boot.img \ + debos \ + -t u_boot_rb1:rb1-boot.img \ + -t "buildid:${BUILD_ID}" \ --print-recipe \ debos-recipes/qualcomm-linux-debian-flash.yaml @@ -145,10 +147,20 @@ jobs: disk-sdcard.img2 \ flash_qrb2210-* - - name: Upload private artifacts + # upload to a cloud storage space accessible by LAVA and developers + - name: Upload private artifacts (GCP) uses: qualcomm-linux/upload-private-artifact-action@v1 - id: upload_artifacts + id: upload_artifacts_gcp + with: + path: debos-artifacts + + # upload to a cloud storage space accessible by Axiom + - name: Upload private artifacts (S3) + uses: qualcomm-linux/upload-private-artifact-action@aws-v2 with: + s3_bucket: qcom-prd-gh-artifacts + # should be the default in that action, or ought to reuse BUILD_ID + destination: ${{ github.repository_owner }}/${{ github.event.repository.name }}/${{ github.run_id }}-${{ github.run_attempt }}/ path: debos-artifacts - name: Unpack rootfs to generate SBOM @@ -201,7 +213,7 @@ jobs: path: sboms - name: "Print output" env: - build_url: ${{ steps.upload_artifacts.outputs.url }} + build_url: ${{ steps.upload_artifacts_gcp.outputs.url }} run: | echo "Downloads URL: ${build_url}" echo "url=\"${build_url}\"" >> $GITHUB_OUTPUT diff --git a/debos-recipes/qualcomm-linux-debian-flash.yaml b/debos-recipes/qualcomm-linux-debian-flash.yaml index e57023d0..055561f0 100644 --- a/debos-recipes/qualcomm-linux-debian-flash.yaml +++ b/debos-recipes/qualcomm-linux-debian-flash.yaml @@ -6,6 +6,7 @@ {{- if .u_boot_rb1 -}} {{- $build_rb1 = "true" }} {{- end -}} +{{- $buildid := or .buildid "" }} architecture: arm64 @@ -251,6 +252,13 @@ actions: "${QCOM_PTOOL}/gen_contents.py" -p ptool-partitions.xml \ -t "$contents" \ -o contents.xml + # XXX insert build_id element before windows_root_path; + # this will be nicer to do when gen_contents.py supports + # setting this; see also: + # https://github.com/qualcomm-linux/qcom-ptool/pull/38 + sed -i \ + "/windows_root_path/ i \t\t\t\t{{$buildid}}" \ + contents.xml fi # generate flashing files from qcom-partitions.xml "${QCOM_PTOOL}/ptool.py" -x ptool-partitions.xml @@ -263,6 +271,17 @@ actions: # copy platform partition files cp --preserve=mode,timestamps -v build/ptool/{{ $board.platform }}/* \ "${flash_dir}" + # adjust paths in contents.xml to use board-specific flash_* subdir + if [ -e "${flash_dir}/contents.xml" ]; then + # one set of backslashes for shell quoting, another one for sed + # parsing + windows_path=".\\\\flash_{{ $board.name }}\\\\" + linux_path="./flash_{{ $board.name }}/" + sed -i \ + -e "s:.*:${windows_path}:" \ + -e "s:.*:${linux_path}:" \ + "${flash_dir}/contents.xml" + fi # remove BLANK_GPT and WIPE_PARTITIONS files as it's common for people # to run "qdl rawprogram*.xml", mistakingly including these; perhaps # ptool should have a flag not to generate these; note that there are