GitHub Actionsを使用すると、ワールドクラスのCI / CDですべてのソフトウェアワークフローを簡単に自動化できます。 GitHubから直接コードをビルド、テスト、デプロイでき、コードレビュー、ブランチ管理、問題のトリアージを希望どおりに機能させます。
プッシュ、Issue、リリースなどのGitHubプラットフォームのイベントをトリガーとしてワークフローを起動しましょう。コミュニティが開発・保守し、ユーザが熟知・愛用しているサービスについて、対応するアクションを組み合わせて設定できます。
コンテナアプリの構築、Webサービスの展開、レジストリへのパッケージの公開、またはオープンソースプロジェクトへの新しいユーザーのウェルカムメッセージを自動化するなど、さまざまな用途でActionsを利用できます。 GitHub PackageとActionsを連携させパッケージ管理を簡素化できます。バージョンのアップデート、グローバルCDNによる高速配布、既存のGITHUB_TOKENを使用した依存関係の解決なども行えます。
すべての主要なOSに対応しているためプロジェクトを簡単にビルドおよびテストできます。 VM上またはコンテナ内で直接実行できます。
複数のオペレーティングシステムとランタイムのバージョンを同時にテストするマトリックスワークフローで時間を節約できます。
GitHub ActionsはNode.js, Python, Java, Ruby, PHP, Go, Rust, .NETなど、さまざまな言語に対応しています。自分が利用している言語でアプリのビルド、テストそしてデプロイが可能です。
error-pages GET / ✓ should respond with page list Accept: text/html GET /403 ✓ should respond with 403 GET /404 ✓ should respond with 404 GET /500 ✓ should respond with 500 Accept: application/json GET /403 ✓ should respond with 403 GET /404 ✓ should respond with 404 GET /500 ✓ should respond with 500 Accept: text/plain GET /403 ✓ should respond with 403 GET /404 ✓ should respond with 404 GET /500 ✓ should respond with 500 error GET / ✓ should respond with 500 GET /next ✓ should respond with 500 GET /missing ✓ should respond with 404 markdown GET / ✓ should respond with html GET /fail ✓ should respond with an error multi-router GET / ✓ should respond with root handler GET /api/v1/ ✓ should respond with APIv1 root handler GET /api/v1/users ✓ should respond with users from APIv1 GET /api/v2/ ✓ should respond with APIv2 root handler GET /api/v2/users ✓ should respond with users from APIv2 mvc GET / ✓ should redirect to /users GET /pet/0 ✓ should get pet GET /pet/0/edit ✓ should get pet edit page PUT /pet/2 ✓ should update the pet GET /users ✓ should display a list of users (70ms) GET /user/:id when present ✓ should display the user ✓ should display the users pets when not present ✓ should 404 GET /user/:id/edit ✓ should display the edit form PUT /user/:id ✓ should 500 on error ✓ should update the user POST /user/:id/pet ✓ should create a pet for user (19ms) params GET / ✓ should respond with instructions GET /user/0 ✓ should respond with a user GET /user/9 ✓ should fail to find user GET /users/0-2 ✓ should respond with three users GET /users/foo-bar ✓ should fail integer parsing resource GET / ✓ should respond with instructions GET /users ✓ should respond with all users GET /users/1 ✓ should respond with user 1 GET /users/9 ✓ should respond with error GET /users/1..3 ✓ should respond with users 1 through 3 DELETE /users/1 ✓ should delete user 1 DELETE /users/9 ✓ should fail GET /users/1..3.json ✓ should respond with users 2 and 3 as json route-map GET /users ✓ should respond with users DELETE /users ✓ should delete users GET /users/:id ✓ should get a user GET /users/:id/pets ✓ should get a users pets GET /users/:id/pets/:pid ✓ should get a users pet route-separation GET / ✓ should respond with index GET /users ✓ should list users GET /user/:id ✓ should get a user ✓ should 404 on missing user GET /user/:id/view ✓ should get a user ✓ should 404 on missing user (13ms) GET /user/:id/edit ✓ should get a user to edit PUT /user/:id/edit ✓ should edit a user POST /user/:id/edit?_method=PUT ✓ should edit a user GET /posts ✓ should get a list of posts vhost example.com GET / ✓ should say hello GET /foo ✓ should say foo foo.example.com GET / ✓ should redirect to /foo bar.example.com GET / ✓ should redirect to /bar web-service GET /api/users without an api key ✓ should respond with 400 bad request with an invalid api key ✓ should respond with 401 unauthorized with a valid api key ✓ should respond users json GET /api/repos without an api key ✓ should respond with 400 bad request with an invalid api key ✓ should respond with 401 unauthorized with a valid api key ✓ should respond repos json GET /api/user/:name/repos without an api key ✓ should respond with 400 bad request with an invalid api key ✓ should respond with 401 unauthorized with a valid api key ✓ should respond user repos json ✓ should 404 with unknown user when requesting an invalid route ✓ should respond with 404 json 1123 passing (4s) ============================================================================= Writing coverage object [/home/runner/build/expressjs/express/coverage/coverage.json] Writing coverage reports at [/home/runner/build/expressjs/express/coverage] ============================================================================= =============================== Coverage summary =============================== Statements : 98.81% ( 1916/1939 ), 38 ignored Branches : 94.58% ( 751/794 ), 22 ignored Functions : 100% ( 267/267 ) Lines : 100% ( 1872/1872 ) ================================================================================ The command "npm run test-ci" exited with 0. $ npm run lint > express@4.17.1 lint /home/runner/build/expressjs/express > eslint . The command "npm run lint" exited with 0. store build cache $ # Upload coverage to coveralls Done. Your build exited with 0.
ワークフローの実行ログは色や絵文字付きでリアルタイムに確認することが出来ます。ログの行を1回クリックするだけで、その行をハイライトしてリンクをコピーすることができるので、簡単にCI/CDの失敗を共有することができます。
ソフトウェア開発の自動化をリポジトリ上のワークフローファイルにコード化することで、自動化プロセスの変更にGitフローを使うことができます。
ワークフローファイルにdocker-composeを追加するだけで、ワークフローでWebサービスとそのDBをテストできます。
Search your code for references to LaunchDarkly feature flags
Automate your workflows using GitHub Actions for Azure
Logs in the local Docker client to Amazon ECR
Deploy your app on any Kubernetes cluster
In-depth code metrics to streamline your engineering processes
Track your test coverage metrics
Integrate your Glo boards into your code workflow
Integrate cross-browser testing into your GitHub Actions workflow
Automatically label and close stale issues and pull requests
Label pull requests based on changed files
A collection of GitHub Actions for Google Cloud Platform
Improve your code review workflow and quality
Deploy your project to the cloud using Zeit
on: push jobs: test: strategy: matrix: platform: [ubuntu-latest, macos-latest, windows-latest] runs-on: $ steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 16 - run: npm install-ci-test - uses: publish: needs: [test] steps: - uses: actions/checkout@v3
GitHub Actionsは、すべてのツールを連携して、開発ワークフローのすべてのステップを自動化します。任意のクラウドに簡単にデプロイしたり、Jiraでチケットを作成したり、npmにパッケージを公開することが可能です。
GitHub Actionsを試してみませんか? GitHubで利用可能な数百万のオープンソースライブラリを使用して、独自のアクションを作成しましょう。 JavaScriptで記述するか、または、コンテナでActionsを作成しましょう。どちらも全てのGitHub APIおよびその他のパブリックAPIと連携できます。
“ 「Actionsはエキサイティングな開発であり、CI / CDを超えた多くの可能性を引き出します。 Webサイトのデプロイから、カスタムステータスレポートのGitHub APIへの問い合わせ、通常のCIビルドまで、さまざまなタスクのワークフローを合理化できるようになります。」
SciPy maintainer
“ 「オープンソースプロジェクトの場合、インフラストラクチャの摩擦が少ないほど、外部の貢献者との作業が容易になります。 GitHub ActionsをCIやイシューのトリアージのような一般的なタスクに使用すると、障壁をさらに下げることができるため、優れた製品の開発に集中できます。」
Yarn maintainer
“ 「GitHubアクションを使用すると、CI / CDワークフローをコードで簡潔に定義し、数千のリポジトリで標準化して、Pull Requestと連携して進化させることができます。このソリューションにより、開発者のエクスペリエンスが向上し、チームの生産性が向上すると同時に、ソフトウェア開発ライフサイクルの管理が簡素化および強化されます。」
Group Head of Technology
“ 「Code ReferencesとGitHub Actionsの統合により、開発者はコード内の機能フラグを簡単に見つけることができます。内部的には、アクションを使用することで、CIインフラストラクチャを最適化し、Windows、Linux、OSXでクライアントを並行してテストすることでビルドプロセスを合理化できると考えています。」
CEO of LaunchDarkly
GitHubはオープンソースを支援します。
1か月あたり
2 cores, 7GB
1分あたり
3 cores, 7GB
ワークフロー言語のリファレンスと、多くの一般的な言語での使用方法はこちらで確認できます。
Actionsを作成してGitHubユーザーと共有しましょう。
GitHubアクションをぜひご利用ください。どのようなワークフローが実行できるかは、GitHub Marketplaceにあるコミュニティが作成したActionsを参考にしてください。