CircleCI: невозможно получить путь к apk, сгенерированному в другом задании в том же рабочем процессе - PullRequest
0 голосов
/ 25 мая 2020

Я реализую распространение APK с помощью Firebase App Distribution, используя Circle CI и в котором у меня есть рабочий процесс с двумя заданиями: одно задание создает APK, а второе развертывает его в распределении приложений Firebase.

version: 2.1

jobs:
  build:
    working_directory: ~/code
    docker:
      - image: circleci/android:api-29
    environment:
      JVM_OPTS: -Xmx2g
      GRADLE_OPTS:  '-Dkotlin.compiler.execution.strategy="in-process"'
    steps:
      - checkout
      - run:
          name: Create keystore.jks
          command: echo $RELEASE_KEY_BASE64 | base64 --decode > $RELEASE_KEY_STORE
      - run:
          name: Create keystore.properties
          command: printf 'releaseKeyAlias=%s\nreleaseKeyPassword=%s\nreleaseKeyStore=%s\nreleaseStorePassword=%s' $RELEASE_KEY_ALIAS $RELEASE_KEY_PASSWORD $RELEASE_KEY_STORE $RELEASE_KEY_PASSWORD > keystore.properties
      - restore_cache:
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
      - run:
          name: Download Dependencies
          command: ./gradlew androidDependencies
      - save_cache:
          paths:
            - ~/.gradle
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
      - run:
          name: Run Tests
          command: ./gradlew lint test
      - run:
          name: Run UnitTest
          command: ./gradlew test
      - store_artifacts:
          path: app/build/reports
          destination: reports
      - store_test_results:
          path: app/build/test-results
      - run:
          name: Initial build
          command: ./gradlew clean assembleRelease --no-daemon --stacktrace
      - store_artifacts:
          path: app/build/outputs/apk/
          destination: apks/

  deploy:
    docker:
      - image: circleci/ruby:2.4-node
    working_directory: ~/code
    shell: /bin/bash --login -o pipefail
    steps:
      - checkout
      - run:
          name: Install Firebase CLI
          command: curl -sL https://firebase.tools | bash
      - run:
          name: Distribute APK to Firebase
          command: firebase appdistribution:distribute "/home/circleci/code/app/build/outputs/apk/release/app-release.apk" --app $FIREBASE_APP_ID --token $FIREBASE_TOKEN --release-notes "Test Release Note" --groups $FIREBASE_TEST_GROUP --debug

workflows:
  version: 2.0
  build-deploy:
    jobs:
      - build:
      - deploy:
          requires:
            - build

И когда я получаю доступ к APK в задании развертывания, которое было сгенерировано в задании сборки, я получил следующую ошибку. Ошибка: Файл /home/circleci/code/app/build/outputs/apk/release/app-release.apk не существует: убедитесь, что файл указывает на дистрибутив.

Но Один и тот же код работает над одной работой. Есть ли способ получить доступ к файлу для другого задания?

...