Prepare repaired alpha9 release
This commit is contained in:
67
.github/workflows/release.yml
vendored
67
.github/workflows/release.yml
vendored
@@ -6,7 +6,64 @@ on:
|
||||
- "v*"
|
||||
|
||||
jobs:
|
||||
verify:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
ruby: ["3.2", "3.3", "3.4", "4.0"]
|
||||
steps:
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up Ruby ${{ matrix.ruby }}
|
||||
uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0
|
||||
with:
|
||||
ruby-version: ${{ matrix.ruby }}
|
||||
bundler-cache: true
|
||||
|
||||
- name: Verify tag matches gem version
|
||||
env:
|
||||
RELEASE_TAG: ${{ github.ref_name }}
|
||||
run: >-
|
||||
ruby -Ilib -ropencode/rails_version -e
|
||||
'expected = ENV.fetch("RELEASE_TAG").delete_prefix("v");
|
||||
abort "tag #{expected.inspect} does not match gem #{Opencode::RAILS_VERSION.inspect}"
|
||||
unless Opencode::RAILS_VERSION == expected'
|
||||
|
||||
- name: Run tests
|
||||
run: bundle exec rake test
|
||||
|
||||
- name: Build gem
|
||||
run: gem build opencode-rails.gemspec
|
||||
|
||||
- name: Verify gems load after install
|
||||
run: |
|
||||
client_dir="$(bundle show opencode-ruby)"
|
||||
(cd "$client_dir" && gem build opencode-ruby.gemspec)
|
||||
client_version="$(ruby -I"$client_dir/lib" -ropencode/version -e 'print Opencode::VERSION')"
|
||||
client_gem="$client_dir/opencode-ruby-${client_version}.gem"
|
||||
rails_gem="opencode-rails-$(ruby -Ilib -ropencode/rails_version -e 'print Opencode::RAILS_VERSION').gem"
|
||||
bundle_gem_path="$(bundle exec ruby -e 'puts Gem.path.join(":")')"
|
||||
export GEM_HOME="${RUNNER_TEMP}/opencode-rails-${{ matrix.ruby }}"
|
||||
export GEM_PATH="${GEM_HOME}:${bundle_gem_path}"
|
||||
mkdir -p "$GEM_HOME"
|
||||
gem install --local "$client_gem" --no-document
|
||||
gem install --local "$rails_gem" --no-document
|
||||
ruby -ropencode-rails -e '
|
||||
root = File.realpath(ENV.fetch("GEM_HOME"))
|
||||
%w[opencode-ruby opencode-rails].each do |name|
|
||||
path = File.realpath(Gem.loaded_specs.fetch(name).full_gem_path)
|
||||
abort "#{name} loaded outside isolated GEM_HOME: #{path}" unless path.start_with?("#{root}/")
|
||||
end
|
||||
puts Opencode::RAILS_VERSION
|
||||
'
|
||||
|
||||
push:
|
||||
needs: verify
|
||||
if: ${{ github.server_url == 'https://github.com' }}
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
@@ -21,14 +78,4 @@ jobs:
|
||||
with:
|
||||
ruby-version: "4.0"
|
||||
bundler-cache: true
|
||||
- name: Verify tag matches gem version
|
||||
env:
|
||||
RELEASE_TAG: ${{ github.ref_name }}
|
||||
run: >-
|
||||
ruby -Ilib -ropencode/rails_version -e
|
||||
'expected = ENV.fetch("RELEASE_TAG").delete_prefix("v");
|
||||
abort "tag #{expected.inspect} does not match gem #{Opencode::RAILS_VERSION.inspect}"
|
||||
unless Opencode::RAILS_VERSION == expected'
|
||||
- name: Run tests
|
||||
run: bundle exec rake test
|
||||
- uses: rubygems/release-gem@052cc82692552de3ef2b81fd670e41d13cba8092 # v1.4.0
|
||||
|
||||
Reference in New Issue
Block a user