diff --git a/.github/workflows/release-hook-on-closed.yml b/.github/workflows/release-hook-on-closed.yml index cdcd252..fb3ebd3 100644 --- a/.github/workflows/release-hook-on-closed.yml +++ b/.github/workflows/release-hook-on-closed.yml @@ -4,11 +4,16 @@ on: pull_request: types: [closed] +permissions: + contents: write # required for creating releases + pull-requests: write # required for updating label on PR, posting comments + issues: write # required for creating new issues on failed releases + jobs: release-process-request: if: ${{ github.repository == 'cloudevents/sdk-ruby' }} env: - ruby_version: "2.7" + ruby_version: "3.4" runs-on: ubuntu-latest steps: - name: Install Ruby ${{ env.ruby_version }} @@ -16,15 +21,14 @@ jobs: with: ruby-version: ${{ env.ruby_version }} - name: Checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v5 - name: Install Toys run: "gem install --no-document toys" - name: Process release request env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }} run: | toys release _onclosed --verbose \ - "--enable-releases=${{ secrets.ENABLE_RELEASES }}" \ "--event-path=${{ github.event_path }}" \ - "--rubygems-api-key=${{ secrets.RUBYGEMS_API_KEY }}" \ < /dev/null diff --git a/.github/workflows/release-hook-on-push.yml b/.github/workflows/release-hook-on-push.yml index e23ddcb..608cf9a 100644 --- a/.github/workflows/release-hook-on-push.yml +++ b/.github/workflows/release-hook-on-push.yml @@ -5,11 +5,15 @@ on: branches: - main +permissions: + contents: write # required for pushing changes + pull-requests: write # required for updating open release PRs + jobs: release-update-open-requests: if: ${{ github.repository == 'cloudevents/sdk-ruby' }} env: - ruby_version: "2.7" + ruby_version: "3.4" runs-on: ubuntu-latest steps: - name: Install Ruby ${{ env.ruby_version }} @@ -17,7 +21,7 @@ jobs: with: ruby-version: ${{ env.ruby_version }} - name: Checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v5 - name: Install Toys run: "gem install --no-document toys" - name: Update open releases diff --git a/.github/workflows/release-perform.yml b/.github/workflows/release-perform.yml index cab065e..cd41f07 100644 --- a/.github/workflows/release-perform.yml +++ b/.github/workflows/release-perform.yml @@ -3,8 +3,8 @@ name: Force release on: workflow_dispatch: inputs: - gem: - description: Gem to release + name: + description: Component to release required: true version: description: Version to release @@ -14,11 +14,16 @@ on: required: false default: "" +permissions: + contents: write # required for creating releases + pull-requests: write # required for updating label on PR, posting comments + issues: write # required for creating new issues on failed releases + jobs: release-perform: if: ${{ github.repository == 'cloudevents/sdk-ruby' }} env: - ruby_version: "2.7" + ruby_version: "3.4" runs-on: ubuntu-latest steps: - name: Install Ruby ${{ env.ruby_version }} @@ -26,17 +31,16 @@ jobs: with: ruby-version: ${{ env.ruby_version }} - name: Checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v5 - name: Install Toys run: "gem install --no-document toys" - name: Perform release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }} run: | toys release perform --yes --verbose \ - "--enable-releases=${{ secrets.ENABLE_RELEASES }}" \ - "--release-sha=${{ github.sha }}" \ - "--rubygems-api-key=${{ secrets.RUBYGEMS_API_KEY }}" \ + "--release-ref=${{ github.sha }}" \ ${{ github.event.inputs.flags }} \ - "${{ github.event.inputs.gem }}" "${{ github.event.inputs.version }}" \ + "${{ github.event.inputs.name }}" "${{ github.event.inputs.version }}" \ < /dev/null diff --git a/.github/workflows/release-request.yml b/.github/workflows/release-request.yml index 7d5c2ee..39ffe50 100644 --- a/.github/workflows/release-request.yml +++ b/.github/workflows/release-request.yml @@ -3,16 +3,20 @@ name: Open release request on: workflow_dispatch: inputs: - gems: - description: Gems to release (leave blank to release all gems) + names: + description: Components to release (leave blank to release all components) required: false default: "" +permissions: + contents: write # required for pushing changes + pull-requests: write # required for creating release PRs + jobs: release-request: if: ${{ github.repository == 'cloudevents/sdk-ruby' }} env: - ruby_version: "2.7" + ruby_version: "3.3" runs-on: ubuntu-latest steps: - name: Install Ruby ${{ env.ruby_version }} @@ -20,14 +24,14 @@ jobs: with: ruby-version: ${{ env.ruby_version }} - name: Checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install Toys run: "gem install --no-document toys" - name: Open release pull request env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.TOYS_RELEASE_REQUEST_TOKEN || secrets.GITHUB_TOKEN }} run: | toys release request --yes --verbose \ - "--gems=${{ github.event.inputs.gems }}" \ - "--release-ref=${{ github.ref }}" \ + "--target-branch=${{ github.ref }}" \ + ${{ github.event.inputs.names }} \ < /dev/null diff --git a/.github/workflows/release-retry.yml b/.github/workflows/release-retry.yml index 71c0549..cd315b6 100644 --- a/.github/workflows/release-retry.yml +++ b/.github/workflows/release-retry.yml @@ -11,11 +11,16 @@ on: required: false default: "" +permissions: + contents: write # required for creating releases + pull-requests: write # required for updating label on PR, posting comments + issues: write # required for creating new issues on failed releases + jobs: release-retry: if: ${{ github.repository == 'cloudevents/sdk-ruby' }} env: - ruby_version: "2.7" + ruby_version: "3.4" runs-on: ubuntu-latest steps: - name: Install Ruby ${{ env.ruby_version }} @@ -23,16 +28,15 @@ jobs: with: ruby-version: ${{ env.ruby_version }} - name: Checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v5 - name: Install Toys run: "gem install --no-document toys" - name: Retry release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }} run: | toys release retry --yes --verbose \ - "--enable-releases=${{ secrets.ENABLE_RELEASES }}" \ - "--rubygems-api-key=${{ secrets.RUBYGEMS_API_KEY }}" \ ${{ github.event.inputs.flags }} \ "${{ github.event.inputs.release_pr }}" \ < /dev/null diff --git a/.toys/.data/releases.yml b/.toys/.data/releases.yml index 296cea0..49606aa 100644 --- a/.toys/.data/releases.yml +++ b/.toys/.data/releases.yml @@ -2,9 +2,10 @@ repo: cloudevents/sdk-ruby git_user_name: CNCF CloudEvents Bot git_user_email: cncfcloudevents@gmail.com signoff_commits: true -docs_builder_tool: [yardoc] commit_lint: fail_checks: true merge: squash + gems: - name: cloud_events + gh_pages_version_var: version diff --git a/.toys/.toys.rb b/.toys/.toys.rb index 165d717..f822d6d 100644 --- a/.toys/.toys.rb +++ b/.toys/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -toys_version! ">= 0.12.1" +toys_version! ">= 0.16" expand :clean, paths: :gitignore @@ -19,4 +19,7 @@ expand :gem_build, name: "install", install_gem: true -load_git remote: "https://github.com/dazuma/toys.git", path: ".toys/release", as: "release" +load_git remote: "https://github.com/dazuma/toys.git", + commit: "common-tools/v0.17.0", + path: "common-tools/release", + as: "release" diff --git a/.toys/cucumber.rb b/.toys/cucumber.rb index e0b7c1d..5d50066 100644 --- a/.toys/cucumber.rb +++ b/.toys/cucumber.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -toys_version! ">= 0.15" +toys_version! ">= 0.16" desc "Run cucumber tests"