| name: Test Artifact Upload |
| description: Uploads test archives to GCS and runs on-device tests. |
| inputs: |
| type: |
| description: "Type of artifacts to upload (ondevice or onhost)" |
| required: true |
| os: |
| description: "Host OS (either linux or windows)." |
| required: true |
| runs: |
| using: "composite" |
| steps: |
| - name: Set up Cloud SDK |
| uses: isarkis/setup-gcloud@40dce7857b354839efac498d3632050f568090b6 # v1.1.1 |
| - name: Configure Environment |
| env: |
| WORKFLOW: ${{ github.workflow }} |
| run: | |
| set -x |
| project_name=$(gcloud config get-value project) |
| if [ -z ${COBALT_BOOTLOADER+x} ] |
| then |
| PLATFORM=${{matrix.platform}} |
| echo "TARGET_PLATFORM=${{matrix.target_platform}}" >> $GITHUB_ENV |
| else |
| PLATFORM=${COBALT_BOOTLOADER} |
| echo "TARGET_PLATFORM=${COBALT_BOOTLOADER}" >> $GITHUB_ENV |
| fi |
| |
| if [ "${{ inputs.type }}" == 'ondevice' ] |
| then |
| echo "ARCHIVE_FILE=artifacts.tar" >> $GITHUB_ENV |
| echo "ARCHIVE_PATH=$GITHUB_WORKSPACE/artifacts.tar" >> $GITHUB_ENV |
| echo "DESTINATION=${project_name}-test-artifacts/${WORKFLOW}/${GITHUB_RUN_NUMBER}/${{matrix.platform}}_${{matrix.config}}/" >> $GITHUB_ENV |
| elif [ "${{ inputs.type }}" == 'onhost' ] |
| then |
| if [ "${{ inputs.os }}" == 'linux' ] |
| then |
| echo "ARCHIVE_FILE=${PLATFORM}_${{matrix.config}}.tar.xz" >> $GITHUB_ENV |
| echo "ARCHIVE_PATH=$GITHUB_WORKSPACE/${PLATFORM}_${{matrix.config}}.tar.xz" >> $GITHUB_ENV |
| elif [ "${{ inputs.os }}" == 'windows' ] |
| then |
| echo "ARCHIVE_FILE=${PLATFORM}_${{matrix.config}}.tar.gz" >> $GITHUB_ENV |
| echo "ARCHIVE_PATH=$GITHUB_WORKSPACE/${PLATFORM}_${{matrix.config}}.tar.gz" >> $GITHUB_ENV |
| fi |
| echo "DESTINATION=${project_name}-test-artifacts/${WORKFLOW}/${GITHUB_RUN_NUMBER}/${{matrix.platform}}_${{matrix.config}}/" >> $GITHUB_ENV |
| fi |
| |
| echo "PYTHONPATH=$GITHUB_WORKSPACE" >> $GITHUB_ENV |
| project_name=$(gcloud config get-value project) |
| shell: bash |
| - name: Create Test Files Archive |
| run: | |
| set -x |
| [ -f "${ARCHIVE_PATH}" ] && rm -rf "${ARCHIVE_PATH}" |
| if [ "${{ inputs.type }}" == 'ondevice' ] |
| then |
| outdir="$GITHUB_WORKSPACE/out/${{matrix.target_platform}}_${{matrix.config}}" |
| if [ -n "${COBALT_BOOTLOADER}" ] |
| then |
| outdir="${outdir} $GITHUB_WORKSPACE/out/${COBALT_BOOTLOADER}_${{matrix.config}}" |
| fi |
| python3 $GITHUB_WORKSPACE/tools/create_archive.py --test_infra -d ${{env.ARCHIVE_FILE}} -s ${outdir} |
| elif [ "${{ inputs.type }}" == 'onhost' ] |
| then |
| parallel= |
| if [[ "${{inputs.os}}" == 'linux' ]]; then |
| parallel='--parallel' |
| fi |
| python3 $GITHUB_WORKSPACE/tools/create_archive.py --intermediate -d ${{env.ARCHIVE_FILE}} -s $GITHUB_WORKSPACE/out/${TARGET_PLATFORM}_${{matrix.config}} $parallel |
| fi |
| shell: bash |
| - name: Copy Test Files to GCS |
| id: upload-test-archive |
| shell: bash |
| run: | |
| set -eux |
| gsutil -d cp "${ARCHIVE_PATH}" "gs://${DESTINATION}" |