Skip to content

Instantly share code, notes, and snippets.

@rzane
Last active May 4, 2022 20:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rzane/45b972e64dc7811ead732c7b031a30d7 to your computer and use it in GitHub Desktop.
Save rzane/45b972e64dc7811ead732c7b031a30d7 to your computer and use it in GitHub Desktop.
Actions

Gem

Build

name: Build
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Setup Ruby
        uses: actions/setup-ruby@v1
        with:
          ruby-version: 2.6.x

      - name: Install bundler
        run: gem install bundler

      - name: Install dependencies
        run: bundle install

      - name: Test
        run: bundle exec rspec

Release

Make sure to configure RUBYGEMS_TOKEN and set version.rb to 0.0.0.

name: Publish
on:
  release:
    types: [published]
jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Setup Ruby
        uses: actions/setup-ruby@v1
        with:
          ruby-version: 2.6.x

      - name: Install bundler
        run: gem install bundler

      - name: Install dependencies
        run: bundle install

      - name: Test
        run: bundle exec rspec

      - name: Set version
        run: perl -pi -e "s/0\.0\.0/${GITHUB_REF:11}/" lib/*/version.rb

      - name: Publish
        run: |
          mkdir -p $HOME/.gem
          touch $HOME/.gem/credentials
          chmod 0600 $HOME/.gem/credentials
          printf -- "---\n:rubygems_api_key: ${RUBYGEMS_TOKEN}\n" > $HOME/.gem/credentials
          gem build *.gemspec
          gem push *.gem
        env:
          RUBYGEMS_TOKEN: ${{ secrets.RUBYGEMS_TOKEN }}

NPM

Build

name: Build
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Setup Node
        uses: actions/setup-node@v1
        with:
          node-version: 12

      - name: Dependencies
        run: yarn install --frozen-lockfile

      - name: Test
        run: yarn test --ci --coverage

Release

Make sure to configure NPM_TOKEN and the version to 0.0.0.

name: Publish
on:
  release:
    types: [published]
jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Setup Node
        uses: actions/setup-node@v1
        with:
          node-version: 12
          registry-url: https://registry.npmjs.org

      - name: Dependencies
        run: yarn install --frozen-lockfile

      - name: Test
        run: yarn test --ci --coverage

      - name: Set version
        run: yarn version --new-version "${GITHUB_REF:11}" --no-git-tag-version

      - name: Publish
        run: yarn publish --access public
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment