Summary: Update our README file with an announcement of our distribution change. I will pair the announcement with an update to our GitHub workflow as to not produce any more Electron builds for future releases. Changelog: Flipper Electron distribution change announcement. Reviewed By: aigoncharov Differential Revision: D51616454 fbshipit-source-id: 5ff513b3d99c8100ed8241d1bdafebf1d6dcfa10
194 lines
6.1 KiB
YAML
194 lines
6.1 KiB
YAML
name: Release
|
|
# This action runs on push to 'main' and below specified paths
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
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@v3.5.3
|
|
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: softprops/action-gh-release@v0.1.15
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ steps.tag-version-commit.outputs.tag }}
|
|
name: ${{ steps.tag-version-commit.outputs.tag }}
|
|
body: |
|
|
See https://github.com/facebook/flipper/blob/main/desktop/static/CHANGELOG.md
|
|
for full notes.
|
|
draft: false
|
|
prerelease: false
|
|
|
|
build-server-mac:
|
|
needs:
|
|
- release
|
|
runs-on: macos-latest
|
|
env:
|
|
desktop-directory: ./desktop
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3.5.3
|
|
with:
|
|
ref: ${{ needs.release.outputs.tag }}
|
|
- uses: actions/setup-node@v3.6.0
|
|
with:
|
|
node-version: '18.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
|
|
run: cd ${{env.desktop-directory}} && yarn build:flipper-server --mac --dmg
|
|
- name: List dist artifacts
|
|
run: ls -l dist/
|
|
- name: Upload x86-64
|
|
uses: actions/upload-artifact@v3.1.2
|
|
with:
|
|
name: 'Flipper-server-mac-x64.dmg'
|
|
path: 'dist/Flipper-server-mac-x64.dmg'
|
|
- name: Upload aarch64
|
|
uses: actions/upload-artifact@v3.1.2
|
|
with:
|
|
name: 'Flipper-server-mac-aarch64.dmg'
|
|
path: 'dist/Flipper-server-mac-aarch64.dmg'
|
|
|
|
build-flipper-server:
|
|
needs:
|
|
- release
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
desktop-directory: ./desktop
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3.5.3
|
|
with:
|
|
ref: ${{ needs.release.outputs.tag }}
|
|
- uses: actions/setup-node@v3.6.0
|
|
with:
|
|
node-version: '18.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
|
|
run: cd ${{env.desktop-directory}} && yarn build:flipper-server
|
|
- name: List dist artifacts
|
|
run: ls -l dist/
|
|
- name: Upload flipper-server
|
|
uses: actions/upload-artifact@v3.1.2
|
|
with:
|
|
name: 'flipper-server.tgz'
|
|
path: 'dist/flipper-server.tgz'
|
|
|
|
publish:
|
|
needs:
|
|
- build-server-mac
|
|
- build-flipper-server
|
|
- release
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3.5.3
|
|
with:
|
|
ref: ${{ needs.release.outputs.tag }}
|
|
- name: Download Flipper Server x86-64
|
|
if: ${{ needs.release.outputs.tag != '' }}
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: 'Flipper-server-mac-x64.dmg'
|
|
path: 'Flipper-server-mac-x64.dmg'
|
|
- name: Download Flipper Server aarch64
|
|
if: ${{ needs.release.outputs.tag != '' }}
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: 'Flipper-server-mac-aarch64.dmg'
|
|
path: 'Flipper-server-mac-aarch64.dmg'
|
|
- name: Download Flipper Server
|
|
if: ${{ needs.release.outputs.tag != '' }}
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: 'flipper-server.tgz'
|
|
path: 'flipper-server.tgz'
|
|
- name: GitHub Upload Release Artifacts
|
|
if: ${{ needs.release.outputs.tag != '' }}
|
|
uses: aigoncharov/github-upload-release-artifacts-action@2.2.3
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
created_tag: ${{ needs.release.outputs.tag }}
|
|
args: flipper-server.tgz/flipper-server.tgz Flipper-server-mac-x64.dmg/Flipper-server-mac-x64.dmg Flipper-server-mac-aarch64.dmg/Flipper-server-mac-aarch64.dmg
|
|
- name: Set up npm token
|
|
run: echo "//registry.yarnpkg.com/:_authToken=${{ secrets.FLIPPER_NPM_TOKEN }}" >> ~/.npmrc
|
|
- name: Publish flipper-server on NPM
|
|
if: ${{ needs.release.outputs.tag != '' }}
|
|
run: |
|
|
tar zxvf flipper-server.tgz/flipper-server.tgz
|
|
cd package
|
|
yarn publish
|
|
- name: Open issue on failure
|
|
if: failure()
|
|
uses: JasonEtco/create-an-issue@v2.9.1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
REPOSITORY: ${{ github.repository }}
|
|
RUN_ID: ${{ github.run_id }}
|
|
WORKFLOW_NAME: "Publish"
|
|
with:
|
|
filename: .github/action-failure-template.md
|
|
|
|
dispatch:
|
|
needs:
|
|
- release
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Publish Workflow Dispatch
|
|
if: ${{ needs.release.outputs.tag != '' }}
|
|
uses: benc-uk/workflow-dispatch@v1.2.2
|
|
with:
|
|
workflow: Publish Pods
|
|
ref: ${{ needs.release.outputs.tag }}
|
|
- name: Publish NPM
|
|
if: ${{ needs.release.outputs.tag != '' }}
|
|
uses: benc-uk/workflow-dispatch@v1.2.2
|
|
with:
|
|
workflow: Publish NPM
|
|
ref: ${{ needs.release.outputs.tag }}
|
|
- name: Publish Android
|
|
if: ${{ needs.release.outputs.tag != '' }}
|
|
uses: benc-uk/workflow-dispatch@v1.2.2
|
|
with:
|
|
workflow: Publish Android
|
|
ref: ${{ needs.release.outputs.tag }}
|
|
inputs: '{"tag": "${{ needs.release.outputs.tag }}"}'
|