Files
flipper/.github/workflows/release.yml
Pascal Hartig 7fd0c7d82e Fix upload of sample app apk (#1920)
Summary:
This was an expected failure, you can see here how the last step of the "Publish Android" workflow currently fails: https://github.com/facebook/flipper/runs/1873750507?check_suite_focus=true

This is because it no longer runs in a tagging context. We're now providing the tag as an input and my custom action knows how to attach to existing tags by name.

Pull Request resolved: https://github.com/facebook/flipper/pull/1920

Test Plan:
Test run here finished successfully: https://github.com/passy/flipper-1/actions/runs/560774414
Publish Android job: https://github.com/passy/flipper-1/actions/runs/560775419
Attached release: https://github.com/passy/flipper-1/releases/tag/v0.0.7
Artifacts on Central: https://repo.maven.apache.org/maven2/com/facebook/flipper/flipper/0.0.7/

{F372552533}

{F372552532}

Reviewed By: mweststrate

Differential Revision: D26402629

Pulled By: passy

fbshipit-source-id: 7290e6bb8d1078ee20a0cf10105dc37f1e7aa99a
2021-02-12 04:36:11 -08:00

206 lines
5.8 KiB
YAML

name: Release
on:
push:
branches:
- master
paths:
- 'desktop/package.json'
jobs:
release:
runs-on: ubuntu-latest
outputs:
tag: ${{ steps.tag-version-commit.outputs.tag }}
steps:
- uses: passy/extract-version-commit@v1.0.0
id: extract-version-commit
with:
version_regex: '^Flipper Release: v([0-9]+\.[0-9]+\.[0-9]+)(?:\n|$)'
- uses: actions/checkout@v2
if: ${{ steps.extract-version-commit.outputs.commit != ''}}
with:
ref: ${{ steps.extract-version-commit.outputs.commit }}
- name: Tag version commit
if: ${{ steps.extract-version-commit.outputs.commit != ''}}
id: tag-version-commit
uses: passy/tag-version-commit@v1.2.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
ref: ${{ steps.extract-version-commit.outputs.commit }}
version_tag_prefix: 'v'
version_assertion_command: 'grep -q "\"version\": \"$version\"" desktop/package.json'
- name: Create release
if: ${{ steps.tag-version-commit.outputs.tag != '' }}
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.tag-version-commit.outputs.tag }}
release_name: ${{ steps.tag-version-commit.outputs.tag }}
body: |
See https://github.com/facebook/flipper/blob/master/desktop/static/CHANGELOG.md
for full notes.
draft: false
prerelease: false
build-mac:
needs:
- release
runs-on: macos-latest
env:
desktop-directory: ./desktop
steps:
- uses: actions/checkout@v2
with:
ref: ${{ needs.release.outputs.tag }}
- uses: actions/setup-node@v1
with:
node-version: '12.x'
- name: Install
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 10
max_attempts: 3
command: cd ${{env.desktop-directory}} && yarn
- name: Build
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 30
max_attempts: 3
command: cd ${{env.desktop-directory}} && yarn build --mac --mac-dmg
- name: Upload
uses: actions/upload-artifact@v1
with:
name: 'Flipper-mac.dmg'
path: 'dist/Flipper-mac.dmg'
build-linux:
needs:
- release
runs-on: ubuntu-latest
env:
desktop-directory: ./desktop
steps:
- uses: actions/checkout@v2
with:
ref: ${{ needs.release.outputs.tag }}
- uses: actions/setup-node@v1
with:
node-version: '12.x'
- name: Install
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 10
max_attempts: 3
command: cd ${{env.desktop-directory}} && yarn
- name: Build
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 30
max_attempts: 3
command: cd ${{env.desktop-directory}} && yarn build --linux
- name: Upload Linux
uses: actions/upload-artifact@v1
with:
name: 'Flipper-linux.zip'
path: 'dist/Flipper-linux.zip'
build-win:
needs:
- release
runs-on: windows-latest
env:
desktop-directory: ./desktop
steps:
- uses: actions/checkout@v2
with:
ref: ${{ needs.release.outputs.tag }}
- uses: actions/setup-node@v1
with:
node-version: '12.x'
- name: Install
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 10
max_attempts: 3
command: cd ${{env.desktop-directory}} && yarn
- name: Build
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 30
max_attempts: 3
command: cd ${{env.desktop-directory}} && yarn build --win
- name: Upload Windows
uses: actions/upload-artifact@v1
with:
name: 'Flipper-win.zip'
path: 'dist/Flipper-win.zip'
publish:
needs:
- build-win
- build-linux
- build-mac
- release
runs-on: ubuntu-latest
steps:
- name: Download Mac
if: ${{ needs.release.outputs.tag != '' }}
uses: actions/download-artifact@v1
with:
name: 'Flipper-mac.dmg'
path: 'Flipper-mac.dmg'
- name: Download Linux
if: ${{ needs.release.outputs.tag != '' }}
uses: actions/download-artifact@v1
with:
name: 'Flipper-linux.zip'
path: 'Flipper-linux.zip'
- name: Download Windows
if: ${{ needs.release.outputs.tag != '' }}
uses: actions/download-artifact@v1
with:
name: 'Flipper-win.zip'
path: 'Flipper-win.zip'
- name: GitHub Upload Release Artifacts
if: ${{ needs.release.outputs.tag != '' }}
uses: passy/github-upload-release-artifacts-action@v2.1.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
created_tag: ${{ needs.release.outputs.tag }}
args: Flipper-mac.dmg Flipper-linux.zip Flipper-win.zip
dispatch:
needs:
- release
runs-on: ubuntu-latest
steps:
- name: Publish Workflow Dispatch
if: ${{ needs.release.outputs.tag != '' }}
uses: benc-uk/workflow-dispatch@v1.1
with:
workflow: Publish Pods
token: ${{ secrets.PERSONAL_TOKEN }}
ref: ${{ needs.release.outputs.tag }}
- name: Publish NPM
if: ${{ needs.release.outputs.tag != '' }}
uses: benc-uk/workflow-dispatch@v1.1
with:
workflow: Publish NPM
token: ${{ secrets.PERSONAL_TOKEN }}
ref: ${{ needs.release.outputs.tag }}
- name: Publish Android
if: ${{ needs.release.outputs.tag != '' }}
uses: benc-uk/workflow-dispatch@v1.1
with:
workflow: Publish Android
token: ${{ secrets.PERSONAL_TOKEN }}
ref: ${{ needs.release.outputs.tag }}
inputs: '{"tag": "${{ needs.release.outputs.tag }}"}'