Summary: I've been investigating the now persistent upload issue for our artifacts and it appears to come down to artifacts being uploaded and downloaded as folder structures while they used to be individual files. Annoyingly, the `ghr` tool we use for uploading throws a cryptic and misleading error: https://github.com/facebook/flipper/runs/4314584032?check_suite_focus=true There is some more control in the `v2` version of the actions but for now, this seems like the safer option to fix this problem. {F682461661} Reviewed By: lblasa Differential Revision: D32649218 fbshipit-source-id: 47ebefc434cb3b928b82a9fe8da3002b7b8465b6
67 lines
2.3 KiB
YAML
67 lines
2.3 KiB
YAML
name: Publish Android
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag:
|
|
description: "Tag to upload artifacts to"
|
|
required: false
|
|
|
|
|
|
jobs:
|
|
build:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: set up JDK 1.8
|
|
uses: actions/setup-java@v1
|
|
with:
|
|
java-version: 1.8
|
|
- name: Write GPG Sec Ring
|
|
run: echo '${{ secrets.GPG_KEY_CONTENTS }}' | base64 -d > /tmp/secring.gpg
|
|
- name: Update gradle.properties
|
|
run: echo -e "signing.secretKeyRingFile=/tmp/secring.gpg\nsigning.keyId=${{ secrets.SIGNING_KEY_ID }}\nsigning.password=${{ secrets.SIGNING_PASSWORD }}\nmavenCentralPassword=${{ secrets.SONATYPE_NEXUS_PASSWORD }}\nmavenCentralUsername=${{ secrets.SONATYPE_NEXUS_USERNAME }}" >> gradle.properties
|
|
- name: Compute build cache
|
|
run: ./scripts/checksum-android.sh checksum-android.txt
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: |
|
|
~/.gradle/caches/modules-*
|
|
~/.gradle/caches/jars-*
|
|
~/.gradle/caches/build-cache-*
|
|
key: gradle-${{ hashFiles('checksum-android.txt') }}
|
|
- name: Build artifacts
|
|
run: ./gradlew :sample:assembleDebug :sample:assembleRelease && ./gradlew :android:assembleRelease
|
|
- name: Upload Archives
|
|
run: ./gradlew publish --no-parallel --no-daemon
|
|
- name: Release and close
|
|
run: ./gradlew closeAndReleaseRepository
|
|
- name: Clean secrets
|
|
if: always()
|
|
run: rm /tmp/secring.gpg
|
|
- name: Rename apk
|
|
run: mv android/sample/build/outputs/apk/debug/sample-debug.apk SampleApp-android.apk
|
|
- name: Attach sample APK to release
|
|
if: ${{ github.event.inputs.tag != '' }}
|
|
uses: passy/github-upload-release-artifacts-action@v2.2.2
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
created_tag: ${{ github.event.inputs.tag }}
|
|
args: 'SampleApp-android.apk/SampleApp-android.apk'
|
|
- name: Open issue on failure
|
|
if: failure()
|
|
uses: JasonEtco/create-an-issue@v2.4.0
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
REPOSITORY: ${{ github.repository }}
|
|
RUN_ID: ${{ github.run_id }}
|
|
WORKFLOW_NAME: "Publish Android"
|
|
with:
|
|
filename: .github/action-failure-template.md
|