Skip to content

Release Ruby SDK Gem #18

Release Ruby SDK Gem

Release Ruby SDK Gem #18

name: Release Ruby SDK Gem
on: [workflow_dispatch]
jobs:
release-version:
runs-on: ubuntu-latest
name: Release sdk
env:
GEM_HOST_API_KEY: ${{ secrets.FATTUREINCLOUD_RUBYGEMS_API_KEY }}
steps:
- id: checkout
name: Checkout repo
uses: actions/checkout@v3
with:
token: ${{ secrets.FATTUREINCLOUD_BOT_TOKEN }}
- id: init-git
name: Init GIT
run: |
git config --global user.email "info@fattureincloud.it"
git config --global user.name "fattureincloud-bot"
- id: setup-node
name: Setup Node.js
uses: actions/setup-node@v3
- id: setup-ruby
name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.1.0
- id: setup-libraries
name: Install libraries
run: |
npm install -g yarn
yarn global add standard-version
sudo add-apt-repository ppa:rmescandon/yq -y
sudo apt update
sudo apt install yq -y
cd ./scripts/
yarn
# We read the version from the sdk-version.yaml file and create the tag
# If it is needed to bump version, launch the related workflow
- id: read-ruby-sdk-version
name: Read Ruby SDK version
run: |
SDK_VERSION=$(yq e '.info.version' ./sdk-version.yaml)
echo "Releasing version: $SDK_VERSION"
echo "sdk_version=$SDK_VERSION" >> $GITHUB_ENV
# Here we use standard-version just to generate the changelog
- id: generate-changelog
name: Generate Changelog
run: |
standard-version --skip.bump --skip.tag
- id: git-push
name: Pushing to Git repo
if: ${{ !env.ACT }}
run: |
git push origin
- id: save-commit-sha
name: Save latest commit sha
run: |
COMMIT_SHA=$(git rev-parse HEAD)
echo "commit_sha=$COMMIT_SHA" >> $GITHUB_ENV
- id: create-tag
name: Create tag
if: ${{ !env.ACT }}
uses: actions/github-script@v6
with:
github-token: ${{ github.token }}
script: |
github.rest.git.createRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: "refs/tags/v${{ env.sdk_version }}",
sha: "${{ env.commit_sha }}"
})
- id: publish
name: Push to rubygems.org
if: ${{ !env.ACT }}
run: |
gem build *.gemspec
gem push *.gem