Skip to content

technote-space/gh-actions-template

Repository files navigation

GitHub Actions Template

CI Status codecov CodeFactor License: MIT

Template for GitHub actions.

Table of Contents

Details

Setup

yarn

  • yarn setup

npm

  • npm run setup

Workflows

Some workflows are included by default.

ci.yml

CI Workflow

  1. ESLint
  2. Jest
    • Send coverage report to codecov if CODECOV_TOKEN is set.
  3. Release GitHub Actions
    • if tag is added.
  4. Publish package
    • if tag is added and NPM_AUTH_TOKEN is set.
  5. Publish release
    • if 3 and 4 jobs are succeeded.
  6. Notify by slack
    • if workflow is failure

ACCESS_TOKEN is required.
SLACK_WEBHOOK_URL is required.

add-version-tag.yml

Add the release tag when pull request is merged.

  1. Get next version from commits histories.
    see Conventional Commits
  2. Add tag.
  3. Create branch for next version.

ACCESS_TOKEN is required.

toc.yml

Create TOC (Table of contents)

ACCESS_TOKEN is required.

issue-opened.yml

  • Assign the issue to project
    default setting:
    Project: Backlog
    Column: To do
    
  • Assign author to issue

pr-opened.yml

  • Assign the PR to project
    default setting:
    Project: Backlog
    Column: In progress
    
    ACCESS_TOKEN is required.
  • Assign author to PR
  • Add labels by branch
    setting

pr-updated.yml

  • Add labels by changed files setting
  • Create PR histories
  • Manage PR by release type
    ACCESS_TOKEN is required.
  • Check version in package.json
    ACCESS_TOKEN is required.
  • Check if it can be published to npm
    if NPM_AUTH_TOKEN is set

project-card-moved.yml

Manage labels by moving project cards

broken-link-check.yml

Check broken link in README

update-dependencies.yml

Update package dependencies

  • schedule
  • PR opened, closed
  • repository dispatch

add-test-tag.yml

Add tag for test release

Secrets

ACCESS_TOKEN

Personal access token with the public_repo or repo scope
(repo is required for private repositories)

SLACK_WEBHOOK_URL

https://api.slack.com/messaging/webhooks

Test release

technote-space/release-github-actions-cli - GitHub

  1. Create .env
    Set Personal access token
    token=1234567890abcdef1234567890abcdef12345678
  2. Run yarn release
    • Dry run: yarn release -n
    • Help: yarn release -h

cli

Then, you can use your GitHub Actions like follows:

on: push
name: Test
jobs:
  toc:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - uses: owner/repo@gh-actions

Helpers

technote-space/github-action-helper - GitHub

technote-space/github-action-test-helper - GitHub

technote-space/filter-github-action - GitHub

Author

GitHub (Technote)
Blog