Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Experiment with GCP Release Please #729

Merged
merged 9 commits into from
Dec 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/release-please.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
name: Release Please

on:
workflow_dispatch:
push:
branches:
- main

permissions:
contents: write
pull-requests: write

jobs:
release:
name: Process Release
runs-on: ubuntu-latest
steps:
- uses: google-github-actions/release-please-action@cc61a07e2da466bebbc19b3a7dd01d6aecb20d1e
id: release
with:
command: manifest
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm using built in actions tokens instead of PATs.

Built in tokens have a limitation that they don't trigger other actions if a bot performs the actions, which is why say when the bot opens a PR it does not end up triggering unit tests.

I didn't want to start using PATs because then it would be linked to one of our accounts so I figured that I'd live with the consequences and do things like have to manually run tests myself.

If we run into any issues with this flow then I'll switch to using pats.

One thing I haven't figured out yet is how to deal with dependencies yet, e.g. bumping AS and then bumping Rails then all etc...

outputs:
releases_created: ${{ steps.release.outputs.releases_created }}
paths_released: ${{ steps.release.outputs.paths_released }}

publish:
needs: release
name: Publish Gems
runs-on: ubuntu-latest
if: ${{ needs.release.outputs.releases_created }}

strategy:
fail-fast: false
matrix:
path: ${{ fromJson(needs.release.outputs.paths_released) }}
max-parallel: 1

steps:
- name: Checkout repository
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

- name: Setup Ruby
uses: ruby/setup-ruby@af848b40be8bb463a751551a1180d74782ba8a72
with:
ruby-version: 3.0.0

- name: Configure RubyGems
env:
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_API_KEY}}"

run: |
mkdir -p $HOME/.gem
touch $HOME/.gem/credentials
chmod 0600 $HOME/.gem/credentials
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials

- name: Release Gem
working-directory: ${{ matrix.path }}
run: |
bundle install
bundle exec rake --trace build
bundle exec rake --trace release:rubygem_push
49 changes: 49 additions & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"instrumentation/gruf": "0.1.1",
"instrumentation/grape": "0.1.6",
"instrumentation/racecar": "0.3.0",
"instrumentation/rake": "0.2.1",
"instrumentation/rdkafka": "0.4.2",
"instrumentation/trilogy": "0.57.0",
"instrumentation/active_support": "0.5.1",
"instrumentation/action_view": "0.7.0",
"instrumentation/action_pack": "0.8.0",
"instrumentation/active_job": "0.7.1",
"instrumentation/resque": "0.5.0",
"instrumentation/bunny": "0.21.1",
"instrumentation/base": "0.22.3",
"instrumentation/active_record": "0.7.0",
"instrumentation/aws_sdk": "0.5.0",
"instrumentation/lmdb": "0.22.1",
"instrumentation/http": "0.23.2",
"instrumentation/graphql": "0.27.0",
"instrumentation/http_client": "0.22.3",
"instrumentation/httpx": "0.1.1",
"instrumentation/koala": "0.20.2",
"instrumentation/active_model_serializers": "0.20.1",
"instrumentation/concurrent_ruby": "0.21.2",
"instrumentation/dalli": "0.25.0",
"instrumentation/delayed_job": "0.22.1",
"instrumentation/ethon": "0.21.3",
"instrumentation/excon": "0.22.0",
"instrumentation/faraday": "0.23.4",
"instrumentation/mongo": "0.22.2",
"instrumentation/mysql2": "0.25.0",
"instrumentation/net_http": "0.22.4",
"instrumentation/pg": "0.26.1",
"instrumentation/que": "0.7.1",
"instrumentation/rack": "0.23.5",
"instrumentation/rails": "0.29.1",
"instrumentation/redis": "0.25.3",
"instrumentation/restclient": "0.22.3",
"instrumentation/rspec": "0.3.2",
"instrumentation/ruby_kafka": "0.21.0",
"instrumentation/sidekiq": "0.25.0",
"instrumentation/sinatra": "0.23.2",
"instrumentation/all": "0.54.0",
"propagator/ottrace": "0.21.2",
"propagator/xray": "0.22.1",
"resources/azure": "0.1.0",
"resources/container": "0.1.1",
"resources/google_cloud_platform": "0.1.0"
}
Loading