Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/miyajan/github-actions-hands-on
GitHub Actions のハンズオン用リポジトリ
https://github.com/miyajan/github-actions-hands-on
Last synced: 4 days ago
JSON representation
GitHub Actions のハンズオン用リポジトリ
- Host: GitHub
- URL: https://github.com/miyajan/github-actions-hands-on
- Owner: miyajan
- Created: 2020-05-25T10:27:44.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-01-07T18:31:27.000Z (almost 2 years ago)
- Last Synced: 2023-06-13T18:50:18.877Z (over 1 year ago)
- Language: JavaScript
- Size: 500 KB
- Stars: 7
- Watchers: 2
- Forks: 16
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# github-actions-hands-on
GitHub Actions のハンズオン用リポジトリ## ハンズオン
このリポジトリには、Node.js で書かれた Web アプリと、その Web アプリを Docker イメージにするための Dockerfile が存在します。
GitHub Actions で、次の内容の CI を設定してみましょう。- コードスタイルチェックと単体テスト実行
- `npm run lint` でコードスタイルチェック
- `npm test` で単体テスト
- 上記が通ったら、Docker イメージをビルド
- `docker build .` でビルド可能まず、各自でこのリポジトリを Fork してから、手元に clone し、適当な名前のブランチを作成してください。
```bash
$ git clone https://github.com/(your account)/github-actions-hands-on.git
$ git checkout -b setup-ci
```次に、GitHub Actions で CI を設定します。GitHub Actions は YAML で CI を定義します。リポジトリ上に、`.github/workflows/ci.yml` というファイルを、以下の内容で作成してください。
```yaml
name: Node.js Web App CI
on: pushjobs:
lint_and_test:
name: Lint and Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14.x
- run: npm ci
- run: npm run lint
build:
name: Docker Build
needs: [lint_and_test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: docker build .
```設定内容を簡単に説明すると、それぞれ以下のような意味があります。
- `on: push`: リポジトリにコミットが push されるたびにこのワークフローを実行する
- `runs-on: ubuntu-latest`: GitHub Actions が提供する Ubuntu の最新環境上でビルドを行う
- `uses: actions/checkout@v2`: リポジトリをビルド環境上にチェックアウトする
- `uses: actions/setup-node@v2`: ビルド環境の Node.js を `node-version` で指定したバージョンでセットアップする
- `run`: 指定したコマンドを実行
- `needs: [lint_and_test]`: `lint_and_test` ジョブが成功したら実行作成できたら、変更内容をコミットしてリポジトリに push しましょう。
```bash
$ git add .github/workflows/ci.yml
$ git commit -m "setup CI"
$ git push -u origin setup-ci
```ブラウザで、リポジトリの Actions タブを開いて、ワークフローが正しく動いているか確認しましょう。
## ハンズオンで扱ってないこと
- Docker コンテナ内ビルド
- 結合テストやデプロイ
- 環境変数
- キャッシュ
- 成果物
- 通知
- バッジ
- その他いろいろより詳しく知りたい人は、[公式ドキュメント](https://help.github.com/en/actions)を参考に、自分の開発しているソフトウェアに CI/CD を設定してみましょう!