Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 78352f61 authored by Corey Bryant's avatar Corey Bryant Committed by GitHub
Browse files

Merge pull request #8899 from coreycb/release

Uplift various fixes for shippable builds workflow
parents 35de718d 66644795
Loading
Loading
Loading
Loading
+58 −32
Original line number Diff line number Diff line
@@ -832,15 +832,29 @@ jobs:
          releaseFiles: |
            uploads/${{ steps.rename.outputs.PKG_FILE }}

      - name: Determine FTP Destination
        id: ftp_destination
      - name: Generate source tar
        id: generate_tar
        if: ${{ !inputs.skipFtp && contains(matrix.releaseTarget, 'ftp') && matrix.packageFormat == 'apk' }}
        shell: bash
        env:
          RELEASE_TYPE: ${{ env.RELEASE_TYPE }}
          APP_SHA: ${{ steps.shanotes.outputs.app_sha }}
          TAG_NAME: ${{ steps.pkginfo.outputs.TAG_NAME }}
        run: |
          FTP_TAR_FILENAME=$(echo "${TAG_NAME,,}.tar.gz" | sed 's/_/-/g')
          git archive --format=tar.gz --output=uploads/${FTP_TAR_FILENAME} ${APP_SHA}
          ls -l uploads
          echo "FTP_TAR_FILENAME=${FTP_TAR_FILENAME}" | tee -a $GITHUB_OUTPUT

      - name: Prepare for FTP Uploads
        id: prepare_ftp
        if: ${{ !inputs.skipFtp && contains(matrix.releaseTarget, 'ftp') && matrix.packageFormat == 'apk' }}
        shell: bash
        env:
          RELEASE_TYPE: ${{ env.RELEASE_TYPE }}
          VERSION_NAME: ${{ steps.pkginfo.outputs.VERSION_NAME }}
          UPLOAD_FTP_STAGE: ${{ inputs.uploadFtpStage }}
          PKG_FILE: ${{ steps.rename.outputs.PKG_FILE }}
          FTP_TAR_FILENAME: ${{ steps.generate_tar.outputs.FTP_TAR_FILENAME }}
        run: |
          GCP_ENV=prod
          GCP_PROJECT=moz-fx-productdelivery-pr-38b5
@@ -854,10 +868,10 @@ jobs:
          WORKLOAD_IDENTITY_PROVIDER="projects/324168772199/locations/global/workloadIdentityPools/github-actions/providers/github-actions"

          FTP_SUBDIR="releases"
          FTP_DESTINATION="${GCP_PROJECT}-productdelivery/pub/thunderbird-mobile/android/${FTP_SUBDIR}/${VERSION_NAME}/"
          FTP_LOCAL_PATH="ftp/${FTP_SUBDIR}/${VERSION_NAME}"
          FTP_DESTINATION="${GCP_PROJECT}-productdelivery/pub/thunderbird-mobile/android/${FTP_SUBDIR}/${VERSION_NAME}"
          FTP_URL_PATH="${FTP_URL_PREFIX}/${FTP_SUBDIR}/${VERSION_NAME}/"
          FTP_TAR_FILENAME=$(echo "${TAG_NAME,,}.tar.gz" | sed 's/_/-/g')
          if [[ "${RELEASE_TYPE}" = "daily" ]]; then
          if [[ "$RELEASE_TYPE" = "daily" ]]; then
            YEAR=$(date -d "${RELEASE_DATE}" +"%Y")
            MONTH=$(date -d "${RELEASE_DATE}" +%m)
            DAY=$(date -d "${RELEASE_DATE}" +"%d")
@@ -866,64 +880,75 @@ jobs:
            SEC=$(date -d "${RELEASE_DATE}" +"%S")
            DATETIME_SUBDIR="${YEAR}/${MONTH}/${YEAR}-${MONTH}-${DAY}-${HOUR}-${MIN}-${SEC}-main"
            FTP_SUBDIR="nightly"
            FTP_DESTINATION="${GCP_PROJECT}-productdelivery/pub/thunderbird-mobile/android/${FTP_SUBDIR}/${DATETIME_SUBDIR}/"
            FTP_LOCAL_PATH="ftp/${FTP_SUBDIR}/${DATETIME_SUBDIR}"
            FTP_LOCAL_PATH_NIGHTLY_LATEST="ftp/${FTP_SUBDIR}/latest-main"
            FTP_DESTINATION="${GCP_PROJECT}-productdelivery/pub/thunderbird-mobile/android/${FTP_SUBDIR}/${DATETIME_SUBDIR}"
            FTP_DESTINATION_NIGHTLY_LATEST="${GCP_PROJECT}-productdelivery/pub/thunderbird-mobile/android/${FTP_SUBDIR}/latest-main"
            FTP_URL_PATH="${FTP_URL_PREFIX}/${FTP_SUBDIR}/${DATETIME_SUBDIR}/"
            FTP_DESTINATION_NIGHTLY_LATEST="${GCP_PROJECT}-productdelivery/pub/thunderbird-mobile/android/${FTP_SUBDIR}/latest-main/"
            FTP_URL_PATH_NIGHTLY_LATEST="${FTP_URL_PREFIX}/${FTP_SUBDIR}/latest-main/"
          fi

          mkdir -p "${FTP_LOCAL_PATH}"
          cp "uploads/${PKG_FILE}" "${FTP_LOCAL_PATH}"
          cp "uploads/${FTP_TAR_FILENAME}" "${FTP_LOCAL_PATH}"
          echo "$(pwd)/${FTP_LOCAL_PATH}/" | sed -e "s/\.\///"
          ls "${FTP_LOCAL_PATH}"
          if [[ "$RELEASE_TYPE" = "daily" ]]; then
            mkdir -p "${FTP_LOCAL_PATH_NIGHTLY_LATEST}"
            cp "uploads/${PKG_FILE}" "${FTP_LOCAL_PATH_NIGHTLY_LATEST}"
            cp "uploads/${FTP_TAR_FILENAME}" "${FTP_LOCAL_PATH_NIGHTLY_LATEST}"
            echo "$(pwd)/${FTP_LOCAL_PATH}/" | sed -e "s/\.\///"
            ls "${FTP_LOCAL_PATH}"
          fi

          echo "SERVICE_ACCOUNT=${SERVICE_ACCOUNT}" | tee -a $GITHUB_OUTPUT
          echo "WORKLOAD_IDENTITY_PROVIDER=${WORKLOAD_IDENTITY_PROVIDER}" | tee -a $GITHUB_OUTPUT
          echo "FTP_LOCAL_PATH=${FTP_LOCAL_PATH}" | tee -a $GITHUB_OUTPUT
          echo "FTP_LOCAL_PATH_NIGHTLY_LATEST=${FTP_LOCAL_PATH_NIGHTLY_LATEST}" | tee -a $GITHUB_OUTPUT
          echo "FTP_DESTINATION=${FTP_DESTINATION}" | tee -a $GITHUB_OUTPUT
          echo "FTP_DESTINATION_NIGHTLY_LATEST=${FTP_DESTINATION_NIGHTLY_LATEST}" | tee -a $GITHUB_OUTPUT
          echo "FTP_URL_PATH=${FTP_URL_PATH}" | tee -a $GITHUB_OUTPUT
          echo "FTP_URL_PATH_NIGHTLY_LATEST=${FTP_URL_PATH_NIGHTLY_LATEST}" | tee -a $GITHUB_OUTPUT
          echo "FTP_TAR_FILENAME=${FTP_TAR_FILENAME}" | tee -a $GITHUB_OUTPUT

      - name: Generate source tar
        if: ${{ !inputs.skipFtp && contains(matrix.releaseTarget, 'ftp') && matrix.packageFormat == 'apk' }}
        shell: bash
        env:
          APP_SHA: ${{ steps.shanotes.outputs.app_sha }}
          FTP_TAR_FILENAME: ${{ steps.ftp_destination.outputs.FTP_TAR_FILENAME }}
        run: |
          git archive --format=tar.gz --output=uploads/${FTP_TAR_FILENAME} ${APP_SHA}
          ls -l uploads

      - name: Auth to GCS for FTP
        if: ${{ !inputs.skipFtp && contains(matrix.releaseTarget, 'ftp') && matrix.packageFormat == 'apk' }}
        uses: google-github-actions/auth@v2
        with:
          token_format: 'access_token'
          service_account: ${{ steps.ftp_destination.outputs.SERVICE_ACCOUNT }}
          workload_identity_provider: ${{ steps.ftp_destination.outputs.WORKLOAD_IDENTITY_PROVIDER }}
          service_account: ${{ steps.prepare_ftp.outputs.SERVICE_ACCOUNT }}
          workload_identity_provider: ${{ steps.prepare_ftp.outputs.WORKLOAD_IDENTITY_PROVIDER }}
          gzip: false

      - name: GCS Upload of APK Package to FTP
        if: ${{ !inputs.skipFtp && contains(matrix.releaseTarget, 'ftp') && matrix.packageFormat == 'apk' }}
        uses: google-github-actions/upload-cloud-storage@v2
        with:
          path: uploads/${{ steps.rename.outputs.PKG_FILE }}
          destination: ${{ steps.ftp_destination.outputs.FTP_DESTINATION }}
          path: ${{ steps.prepare_ftp.outputs.FTP_LOCAL_PATH }}/${{ steps.rename.outputs.PKG_FILE }}
          destination: ${{ steps.prepare_ftp.outputs.FTP_DESTINATION }}
          gzip: false

      - name: GCS Upload of APK Package to FTP Nightly Latest
        if: ${{ !inputs.skipFtp && contains(matrix.releaseTarget, 'ftp') && matrix.packageFormat == 'apk' && needs.dump_config.outputs.releaseType == 'daily'}}
        uses: google-github-actions/upload-cloud-storage@v2
        with:
          path: uploads/${{ steps.rename.outputs.PKG_FILE }}
          destination: ${{ steps.ftp_destination.outputs.FTP_DESTINATION_NIGHTLY_LATEST }}
          path: ${{ steps.prepare_ftp.outputs.FTP_LOCAL_PATH_NIGHTLY_LATEST }}/${{ steps.rename.outputs.PKG_FILE }}
          destination: ${{ steps.prepare_ftp.outputs.FTP_DESTINATION_NIGHTLY_LATEST }}
          gzip: false

      - name: GCS Upload of Source Tar to FTP
        if: ${{ !inputs.skipFtp && contains(matrix.releaseTarget, 'ftp') && matrix.packageFormat == 'apk' }}
        uses: google-github-actions/upload-cloud-storage@v2
        with:
          path: uploads/${{ steps.ftp_destination.outputs.FTP_TAR_FILENAME }}
          destination: ${{ steps.ftp_destination.outputs.FTP_DESTINATION }}
          path: ${{ steps.prepare_ftp.outputs.FTP_LOCAL_PATH }}/${{ steps.generate_tar.outputs.FTP_TAR_FILENAME }}
          destination: ${{ steps.prepare_ftp.outputs.FTP_DESTINATION }}
          gzip: false

      - name: GCS Upload of Source Tar to FTP Nightly Latest
        if: ${{ !inputs.skipFtp && contains(matrix.releaseTarget, 'ftp') && matrix.packageFormat == 'apk' && needs.dump_config.outputs.releaseType == 'daily'}}
        uses: google-github-actions/upload-cloud-storage@v2
        with:
          path: uploads/${{ steps.ftp_destination.outputs.FTP_TAR_FILENAME }}
          destination: ${{ steps.ftp_destination.outputs.FTP_DESTINATION_NIGHTLY_LATEST }}
          path: ${{ steps.prepare_ftp.outputs.FTP_LOCAL_PATH_NIGHTLY_LATEST }}/${{ steps.generate_tar.outputs.FTP_TAR_FILENAME }}
          destination: ${{ steps.prepare_ftp.outputs.FTP_DESTINATION_NIGHTLY_LATEST }}
          gzip: false

      - name: Summary
        uses: actions/github-script@v7
@@ -939,8 +964,8 @@ jobs:
          appSha: ${{ steps.shanotes.outputs.app_sha }}
          appName: ${{ matrix.appName }}
          skipGooglePlay: ${{ inputs.skipGooglePlay }}
          ftpUrlPath: ${{ steps.ftp_destination.outputs.FTP_URL_PATH }}
          ftpUrlPathNightlyLatest: ${{ steps.ftp_destination.outputs.FTP_URL_PATH_NIGHTLY_LATEST }}
          ftpUrlPath: ${{ steps.prepare_ftp.outputs.FTP_URL_PATH }}
          ftpUrlPathNightlyLatest: ${{ steps.prepare_ftp.outputs.FTP_URL_PATH_NIGHTLY_LATEST }}
          skipFtp: ${{ inputs.skipFtp }}
          packageFormat: ${{ matrix.packageFormat }}
        with:
@@ -976,6 +1001,7 @@ jobs:
            if (process.env.skipFtp != "true" && process.env.releaseTarget.includes("ftp") && process.env.packageFormat == 'apk') {
              await core.summary
                .addRaw(`Published to FTP at`)
                .addEOL()
                .addLink(process.env.ftpUrlPath, process.env.ftpUrlPath)
                .addEOL();