如何使用 bitbucket-pipelines 定位 apk 文件?
How to locate apk file using bitbucket-pipelines?
我正在为 Android CI 使用 BitBucket 管道。我正在尝试将工件(生成的 apk)导出到项目的下载部分。
我的bitbucket-pipelines.yml如下,但是找不到apk文件
image: openjdk:8
pipelines:
default:
- step:
caches:
- gradle
- android-sdk
script:
# Download and unzip android sdk
- wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
- unzip -o -qq android-sdk.zip -d android-sdk
# Define Android Home and add PATHs
- export ANDROID_HOME="/opt/atlassian/pipelines/agent/build/android-sdk"
- export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$PATH"
# Download packages.
- yes | sdkmanager "platform-tools"
- yes | sdkmanager "platforms;android-27"
- yes | sdkmanager "build-tools;27.0.3"
- yes | sdkmanager "extras;android;m2repository"
- yes | sdkmanager "extras;google;m2repository"
- yes | sdkmanager "extras;google;instantapps"
- yes | sdkmanager --licenses
# Build apk
- chmod a+x ./gradlew
- ./gradlew assembleDebug
# Saving artifact
- curl -X POST "https://${BB_AUTH_STRING}@api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"**/*.apk"
definitions:
caches:
android-sdk: android-sdk
问题在
- curl -X POST "https://${BB_AUTH_STRING}@api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"**/*.apk"
我还尝试了以下而不是 **/*.apk
./app/build/outputs/apk/*.apk
但是到目前为止,还没有找到apk。
有没有人遇到过这个问题?我刚刚进入 CI 和 Android,如果有人能提供帮助,我将不胜感激。
我能够通过在构建步骤后添加工件标记来解决问题。然后要发布 apk 文件,我必须指向特定文件(对应于父文件夹的路径)。
我的bitbucket-pipelines.yml文件如下
image: openjdk:8
pipelines:
default:
- step:
caches:
- gradle
- android-sdk
script:
# Download and unzip android sdk
- wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
- unzip -o -qq android-sdk.zip -d android-sdk
# Define Android Home and add PATHs
- export ANDROID_HOME="/opt/atlassian/pipelines/agent/build/android-sdk"
- export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$PATH"
# Download packages.
- yes | sdkmanager "platform-tools"
- yes | sdkmanager "platforms;android-27"
- yes | sdkmanager "build-tools;27.0.3"
- yes | sdkmanager "extras;android;m2repository"
- yes | sdkmanager "extras;google;m2repository"
- yes | sdkmanager "extras;google;instantapps"
- yes | sdkmanager --licenses
# Build apk
- chmod a+x ./gradlew
- ./gradlew assembleDebug
artifacts:
- app/build/outputs/apk/debug/*.apk
- step:
script:
# Saving artifact
- curl -X POST "https://${BB_AUTH_STRING}@api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"app/build/outputs/apk/debug/app-debug.apk"
definitions:
caches:
android-sdk: android-sdk
您可以使用此命令导出最新的apk
LATEST_APK=$(ls -lrt ./app/build/outputs/apk/debug/*.apk | tail -1 | awk -F" " '{ print }')
然后使用 curl post 命令将其上传到 Bitbucket
的下载部分
curl -s -u "${BITBUCKET_REPO_OWNER}:${BB_AUTH_STRING}" -X POST "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" -F files=@"${LATEST_APK}" --verbose
我正在为 Android CI 使用 BitBucket 管道。我正在尝试将工件(生成的 apk)导出到项目的下载部分。
我的bitbucket-pipelines.yml如下,但是找不到apk文件
image: openjdk:8
pipelines:
default:
- step:
caches:
- gradle
- android-sdk
script:
# Download and unzip android sdk
- wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
- unzip -o -qq android-sdk.zip -d android-sdk
# Define Android Home and add PATHs
- export ANDROID_HOME="/opt/atlassian/pipelines/agent/build/android-sdk"
- export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$PATH"
# Download packages.
- yes | sdkmanager "platform-tools"
- yes | sdkmanager "platforms;android-27"
- yes | sdkmanager "build-tools;27.0.3"
- yes | sdkmanager "extras;android;m2repository"
- yes | sdkmanager "extras;google;m2repository"
- yes | sdkmanager "extras;google;instantapps"
- yes | sdkmanager --licenses
# Build apk
- chmod a+x ./gradlew
- ./gradlew assembleDebug
# Saving artifact
- curl -X POST "https://${BB_AUTH_STRING}@api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"**/*.apk"
definitions:
caches:
android-sdk: android-sdk
问题在
- curl -X POST "https://${BB_AUTH_STRING}@api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"**/*.apk"
我还尝试了以下而不是 **/*.apk
./app/build/outputs/apk/*.apk
但是到目前为止,还没有找到apk。
有没有人遇到过这个问题?我刚刚进入 CI 和 Android,如果有人能提供帮助,我将不胜感激。
我能够通过在构建步骤后添加工件标记来解决问题。然后要发布 apk 文件,我必须指向特定文件(对应于父文件夹的路径)。
我的bitbucket-pipelines.yml文件如下
image: openjdk:8
pipelines:
default:
- step:
caches:
- gradle
- android-sdk
script:
# Download and unzip android sdk
- wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
- unzip -o -qq android-sdk.zip -d android-sdk
# Define Android Home and add PATHs
- export ANDROID_HOME="/opt/atlassian/pipelines/agent/build/android-sdk"
- export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$PATH"
# Download packages.
- yes | sdkmanager "platform-tools"
- yes | sdkmanager "platforms;android-27"
- yes | sdkmanager "build-tools;27.0.3"
- yes | sdkmanager "extras;android;m2repository"
- yes | sdkmanager "extras;google;m2repository"
- yes | sdkmanager "extras;google;instantapps"
- yes | sdkmanager --licenses
# Build apk
- chmod a+x ./gradlew
- ./gradlew assembleDebug
artifacts:
- app/build/outputs/apk/debug/*.apk
- step:
script:
# Saving artifact
- curl -X POST "https://${BB_AUTH_STRING}@api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"app/build/outputs/apk/debug/app-debug.apk"
definitions:
caches:
android-sdk: android-sdk
您可以使用此命令导出最新的apk
LATEST_APK=$(ls -lrt ./app/build/outputs/apk/debug/*.apk | tail -1 | awk -F" " '{ print }')
然后使用 curl post 命令将其上传到 Bitbucket
的下载部分curl -s -u "${BITBUCKET_REPO_OWNER}:${BB_AUTH_STRING}" -X POST "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" -F files=@"${LATEST_APK}" --verbose