agents: queue: "default" # Nodes with values to reuse in the pipeline. common_params: - &docker_plugin "docker#v5.7.0" - &docker_ruby_image "public.ecr.aws/docker/library/ruby:3.2.2" - &common_plugins - *docker_plugin : image: *docker_ruby_image steps: ################# # Build and Test ################# - group: "🧪 Build and Test" key: test steps: - label: "🧪 Build and Test" command: | echo "--- :rubygems: Setting up Gems" bundle install echo "--- :rspec: Run Rspec" bundle exec rspec --profile 10 --format progress plugins: *common_plugins ################# # Lint ################# - label: "🧹 Lint (Rubocop)" key: rubocop command: | echo "--- :rubygems: Setting up Gems" bundle install echo "--- :rubocop: Run Rubocop" bundle exec rubocop plugins: *common_plugins ################# # Danger Lint ################# - label: "☢️ Lint (Danger)" key: dangerlint command: | echo "--- :rubygems: Setting up Gems" bundle install echo "--- ☢️ Run Danger Lint" bundle exec danger plugins lint plugins: *common_plugins ################# # Push to RubyGems ################# - label: ":rubygems: Publish to RubyGems" key: "gem-push" if: build.tag != null depends_on: - test - rubocop command: .buildkite/gem-push.sh plugins: - *docker_plugin : image: *docker_ruby_image propagate-environment: true environment: - "RUBYGEMS_API_KEY"