chore: use github actions

pull/461/head
Ika 2020-07-07 21:50:29 +08:00
parent 7f6a3e40ee
commit e29c784610
6 changed files with 116 additions and 18 deletions

24
.github/workflows/lint.yml vendored 100644
View File

@ -0,0 +1,24 @@
name: Lint
on:
- push
- pull_request
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2-beta
with:
node-version: "12"
- name: Install Dependencies
run: yarn
- name: Lint
run: yarn lint

24
.github/workflows/test.yml vendored 100644
View File

@ -0,0 +1,24 @@
name: Test
on:
- push
- pull_request
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2-beta
with:
node-version: "12"
- name: Install Dependencies
run: yarn
- name: Test
run: yarn test --ci

66
.github/workflows/update.yml vendored 100644
View File

@ -0,0 +1,66 @@
name: Up to Date
on:
schedule:
- cron: "0 0 * * *"
jobs:
update:
name: Update
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v2-beta
with:
node-version: "12"
- name: Install Dependencies
run: yarn
- name: Generate Cheat Sheet
run: yarn generate
- name: Push New Cheat Sheet to Updated Branch
run: |
git diff --name-only --exit-code && exit 0
git add README.md
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git commit -m "docs(readme): update emoji-cheat-sheet"
git push -qf "https://${{ secrets.GITHUB_TOKEN }}@github.com/ikatyang/emoji-cheat-sheet.git" HEAD:github-actions-auto-update
- name: Create PR from Updated Branch
uses: actions/github-script@v2
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const {owner, repo} = context.repo
const branch = 'github-actions-auto-update'
const {status: branchStatus} = await github.repos.getBranch({
owner,
repo,
branch,
})
if (branchStatus !== 200) {
return
}
const {status, data: prs} = await github.pulls.list({
owner,
repo,
head: branch,
state: 'open',
})
if (status === 200 && prs.length === 0) {
await github.pulls.create({
owner,
repo,
head: branch,
title: 'docs(readme): update emoji-cheat-sheet',
base: 'master',
})
}

View File

@ -1,16 +0,0 @@
language: node_js
node_js:
- "12"
script:
- yarn lint
- yarn test --ci
cache:
yarn: true
directories:
- node_modules
matrix:
fast_finish: true

View File

@ -6,7 +6,7 @@ test("emoji-cheat-sheet", async () => {
expect(await generate()).toMatchInlineSnapshot(`
"# emoji-cheat-sheet
[![build](https://travis-ci.org/ikatyang/emoji-cheat-sheet.svg?branch=master)](https://travis-ci.org/ikatyang/emoji-cheat-sheet)
[![Up to Date](https://github.com/ikatyang/emoji-cheat-sheet/workflows/Up%20to%20Date/badge.svg)](https://github.com/ikatyang/emoji-cheat-sheet/actions?query=workflow%3A%22Up+to+Date%22)
This cheat sheet is automatically generated from [GitHub Emoji API](https://api.github.com/emojis) and [Unicode Full Emoji List](https://unicode.org/emoji/charts/full-emoji-list.html).

View File

@ -22,7 +22,7 @@ function generateCheatSheet(categorizedGithubEmojiIds) {
lineTexts.push("");
lineTexts.push(
`[![build](https://travis-ci.org/${repository}.svg?branch=master)](https://travis-ci.org/${repository})`
`[![Up to Date](https://github.com/${repository}/workflows/Up%20to%20Date/badge.svg)](https://github.com/${repository}/actions?query=workflow%3A%22Up+to+Date%22)`
);
lineTexts.push("");