久しぶりに、プロフィールページを作成していきます。
技術スタックは下記の通りです。
- nuxt.js
- SCSS
- Tailwind CSS
今回はGitHub Actionsの導入です。
GitHub Actionsとは
GitHub Actionsとは、GitHubに搭載されているCIの仕組みです。
標準搭載のため導入も非常に簡単です。
なお私自身は、業務ではGitlabを利用していることもあり、Gitlab CIは使っていても、GitHub Actionsの経験はほとんどなく、今回導入しながら勉強してみました。
Linterの導入
今回は、JS・CSSのLinterを導入します。
- JS
- Linter ... ESLint
- Formatter ... Prettier
- CSS
- Linter ... StyleLint
- Formatter ... Prettier
Linterについては、現状有力な代替案を知りません(教えて欲しいです)。
Prettierについては、良くも悪くも強制力が強くて運用の幅が少ないため、評価が分かれるんじゃないかと思っています。
とは言え無難な選択肢なのかなと考えています。
GitHub Actionsの導入
.github/workflows/ci.yml というファイルを作成・編集することで、導入できます。
name: Node.js CI on: pull_request: branches: [ master ] jobs: lint: runs-on: ubuntu-latest defaults: run: working-directory: 'v2' steps: - uses: actions/checkout@v2 - name: Set up Node.js uses: actions/setup-node@v2 with: node-version-file: 'v2/.node-version' cache: 'yarn' cache-dependency-path: '**/yarn.lock' - run: yarn - run: yarn lint
nameでは、単にCI名を設定しています。
on: pull_request: branches では、CIの実行対象のbranch(今回はmaster)を指定しています。 masterブランチにcommitが追加された時に、CIが実行されます。 今回はPull Request運用なので、PRのMerge時のみの想定です。
jobs: lint にて、Linterを実行するようなCIを導入します。
jobs: lint: runs-on にて、実行環境を指定します。今回は、ubuntu-latest(Ubuntuの最新バージョン)を指定しました。 jobs: lint: stepsにて、CIの1つ1つの手順を記述していきます。
uses: actions/checkout@v2 では、ソースコードをcheckoutします。
https://github.com/actions/checkout
uses: actions/setup-node@v2 では、node.js環境を導入しています。
with: にてactions/setup-node@v2に渡す変数を設定します。
最後のrun: yarn, run: yarn lintにて、yarnのパッケージ導入とlintの実行を行います。
実行結果
無事に実行され、Lintも成功しました。
https://github.com/nek0meshi/profile/runs/5069475818?check_suite_focus=true
Pull Request
まとめ
GitHubについてはまだ使い慣れていないので、少しずつ触ってみたいと思っています。