From 427f74da67688ffa96a60392ea1466f182f10f68 Mon Sep 17 00:00:00 2001 From: Mark Isaac Date: Tue, 6 Feb 2024 13:19:45 +0000 Subject: [PATCH] Add GitHub actions --- .github/workflows/gem-push.yml | 48 ++++++++++++++++++++++++++++++++++ .github/workflows/gem-test.yml | 22 ++++++++++++++++ .github/workflows/main.yml | 16 ------------ 3 files changed, 70 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/gem-push.yml create mode 100644 .github/workflows/gem-test.yml delete mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/gem-push.yml b/.github/workflows/gem-push.yml new file mode 100644 index 0000000..0d1f82c --- /dev/null +++ b/.github/workflows/gem-push.yml @@ -0,0 +1,48 @@ +name: Ruby Gem Publish + +on: + push: + branches: [ "main" ] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + ruby-version: [ '3.0', '3.1', '3.2' ] + + steps: + - uses: actions/checkout@v2 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + - name: Run tests + run: bundle exec rspec + + deploy: + needs: test + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + + steps: + - uses: actions/checkout@v2 + - name: Set up Ruby 3.0.1 + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.1.2 + bundler-cache: true + + - name: Publish to RubyGems + 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 + gem build *.gemspec + gem push *.gem + env: + GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}" \ No newline at end of file diff --git a/.github/workflows/gem-test.yml b/.github/workflows/gem-test.yml new file mode 100644 index 0000000..e32e1aa --- /dev/null +++ b/.github/workflows/gem-test.yml @@ -0,0 +1,22 @@ +name: Ruby Test + +on: + pull_request: + branches: [ "main" ] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + ruby-version: [ '3.0', '3.1', '3.2' ] + + steps: + - uses: actions/checkout@v2 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + - name: Run tests + run: bundle exec rspec \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 3be79bb..0000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Ruby - -on: [push,pull_request] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: 3.0.2 - bundler-cache: true - - name: Run the default task - run: bundle exec rake