CircleCIとGitHub Actionsは、どちらもワークフロー中のタスクを再利用し、共有するための仕組みを提供しています。 CircleCIはorbsという概念を利用します。これはYAMLで書かれ、ワークフロー中で再利用できるタスクを提供します。 GitHub Actionsはアクションと呼ばれる強力で柔軟な再利用できるコンポーネントを持っており、これはJavaScriptファイルもしくはDockerイメージで構築できます。 GitHub Enterprise Server の API やパブリックに利用可能なサードパーティ API との統合など、リポジトリと相互作用するカスタムコードを書いてアクションを作成することができます。 たとえば、アクションでnpmモジュールを公開する、緊急のIssueが発生したときにSMSアラートを送信する、本番対応のコードをデプロイすることなどが可能です。 詳細については、「アクションを作成する」を参照してください。
---version:2.1jobs:ruby-26:docker:-image:circleci/ruby:2.6.3-node-browsers-legacyenvironment:PGHOST:localhostPGUSER:administrateRAILS_ENV:test-image:postgres:10.1-alpineenvironment:POSTGRES_USER:administratePOSTGRES_DB:ruby26POSTGRES_PASSWORD:""working_directory:~/administratesteps:-checkout# Bundle install dependencies-run:bundleinstall--pathvendor/bundle# Wait for DB-run:dockerize-waittcp://localhost:5432-timeout1m# Setup the environment-run:cp.sample.env.env# Setup the database-run:bundleexecrakedb:setup# Run the tests-run:bundleexecrakeworkflows:version:2build:jobs:-ruby-26...-attach_workspace:at:/tmp/workspace
---version:2.1commands:shared_steps:steps:-checkout# Restore Cached Dependencies-restore_cache:name:Restorebundlecachekey:administrate-{{checksum"Gemfile.lock"}}# Bundle install dependencies-run:bundleinstall--pathvendor/bundle# Cache Dependencies-save_cache:name:Storebundlecachekey:administrate-{{checksum"Gemfile.lock"}}paths:-vendor/bundle# Wait for DB-run:dockerize-waittcp://localhost:5432-timeout1m# Setup the environment-run:cp.sample.env.env# Setup the database-run:bundleexecrakedb:setup# Run the tests-run:bundleexecrakedefault_job:&default_jobworking_directory:~/administratesteps:-shared_steps# Run the tests against multiple versions of Rails-run:bundleexecappraisalinstall-run:bundleexecappraisalrakejobs:ruby-25:<<:*default_jobdocker:-image:circleci/ruby:2.5.0-node-browsersenvironment:PGHOST:localhostPGUSER:administrateRAILS_ENV:test-image:postgres:10.1-alpineenvironment:POSTGRES_USER:administratePOSTGRES_DB:ruby25POSTGRES_PASSWORD:""ruby-26:<<:*default_jobdocker:-image:circleci/ruby:2.6.3-node-browsers-legacyenvironment:PGHOST:localhostPGUSER:administrateRAILS_ENV:test-image:postgres:10.1-alpineenvironment:POSTGRES_USER:administratePOSTGRES_DB:ruby26POSTGRES_PASSWORD:""workflows:version:2multiple-rubies:jobs:-ruby-26-ruby-25