.github/workflows/main.yml in grumlin-0.1.0 vs .github/workflows/main.yml in grumlin-0.1.1

- old
+ new

@@ -1,18 +1,73 @@ name: Ruby -on: [push,pull_request] +on: [push, pull_request] jobs: - build: + lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: 3.0.1 - - name: Run the default task - run: | - gem install bundler -v 2.2.15 - bundle install - bundle exec rake + - uses: actions/checkout@v2 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.0 + bundler-cache: true + + - name: Run the default task + run: | + gem install bundler -v 2.2.15 + bundle install + bundle exec rubocop + test: + runs-on: ubuntu-latest + strategy: + matrix: + ruby: [2.6, 2.7, 3.0] + steps: + - uses: actions/checkout@v2 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + bundler-cache: true + + - name: Start Gremlin server + run: | + docker-compose up -d --build + sleep 3 + + - name: Install deps + run: | + gem install bundler -v 2.2.15 + bundle install + + - name: Run tests + run: bundle exec rspec + publish: + runs-on: ubuntu-latest + needs: + - lint + - test + # if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') + steps: + - uses: actions/checkout@v2 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.0 + bundler-cache: true + + - name: Build gem + run: gem build + + - name: Create credentials + run: | + mkdir ~/.gem + cat << EOF > ~/.gem/credentials + --- + :rubygems_api_key: ${{ secrets.rubygems_api_key }} + EOF + chmod 0600 /home/runner/.gem/credentials + + - name: Push gem + run: gem push *gem