mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-04-29 04:45:19 +08:00
70 lines
2.3 KiB
YAML
70 lines
2.3 KiB
YAML
name: Expo Preview
|
|
on: [pull_request]
|
|
|
|
jobs:
|
|
publish:
|
|
name: Install and publish
|
|
runs-on: ubuntu-latest
|
|
if: github.event.pull_request.head.repo.owner.login == 'react-navigation'
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: 10.x
|
|
|
|
- name: Setup Expo
|
|
uses: expo/expo-github-action@v5
|
|
with:
|
|
expo-version: 3.x
|
|
expo-username: ${{ secrets.EXPO_CLI_USERNAME }}
|
|
expo-password: ${{ secrets.EXPO_CLI_PASSWORD }}
|
|
expo-cache: true
|
|
|
|
- name: Restore yarn cache
|
|
id: yarn-cache
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: '**/node_modules'
|
|
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
|
|
|
- name: Install dependencies
|
|
if: steps.yarn-cache.outputs.cache-hit != 'true'
|
|
run: yarn install --frozen-lockfile
|
|
|
|
- name: Publish Expo app
|
|
working-directory: ./example
|
|
run: expo publish --release-channel=pr-${{ github.event.number }}
|
|
env:
|
|
EXPO_USE_DEV_SERVER: true
|
|
|
|
- name: Get expo link
|
|
id: expo
|
|
run: echo "::set-output name=path::@react-navigation/react-navigation-example?release-channel=pr-${{ github.event.number }}"
|
|
|
|
- name: Comment on PR
|
|
uses: actions/github-script@v3
|
|
with:
|
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
script: |
|
|
const body = 'The Expo app for the example from this branch is ready!\n\n[expo.io/${{ steps.expo.outputs.path }}](https://expo.io/${{ steps.expo.outputs.path }})\n\n<a href="https://exp.host/${{ steps.expo.outputs.path }}"><img src="https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=exp://exp.host/${{ steps.expo.outputs.path }}" height="200px" width="200px"></a>';
|
|
|
|
const comments = await github.issues.listComments({
|
|
issue_number: context.issue.number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
});
|
|
|
|
if (comments.data.some(comment => comment.body === body)) {
|
|
return;
|
|
}
|
|
|
|
github.issues.createComment({
|
|
issue_number: context.issue.number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
body
|
|
})
|