Ruby Gems
Las gemas deben ser publicadas en rubygems.org. Las publicaremos con nuestro usuario personal pero debemos agregar como owner al usuario de platanus.
# Agregar un owner a una gem
gem owner GEM_NAME --add [email protected]
Para hacer el deploy usando CircleCI, necesitamos agregar el archivo de configuración en la gema. Puedes ver un ejemplo de configuración aquí, pero en resumen lo que se hizo fue:
mkdir ~/.gem
echo -e "---\\r\\n:rubygems_api_key: $RUBYGEMS_API_KEY" > ~/.gem/credentials
chmod 0600 /home/circleci/.gem/credentials
Para poder utilizar la api key de rubygems al hacer el deploy.
deploy:
executor: main-executor
steps:
- setup
- run:
name: Setup rubygems
command: bash .circleci/setup-rubygems.sh
- run:
name: Publish to rubygems
command: |
gem build power_api.gemspec
version_tag=$(git describe --tags)
gem push power_api-${version_tag#v}.gem
Esto:
- Ejecuta el setup básico del proyecto.
- Ejecuta el script para copiar la api key en un archivo que se utilizará para el deploy de la gema.
- Crea el archivo .gem
- Crea la nueva versión en rubygems.
workflows:
version: 2
main:
jobs:
- lint:
context: org-global
- test:
matrix:
parameters:
ruby-version: ["2.6", "2.7"]
- deploy:
context: org-global
filters:
tags:
only: /.*/
branches:
ignore: /.*/
Lo que se hace aquí es ejecutar el job deploy siempre que se cree un nuevo tag en github.
org-global es un contexto que tiene definido la variable de entornoRUBYGEMS_API_KEY
que necesitamos para hacer el deploy.
Una vez configurado CircleCI en la gema tenemos que:
- 1.Cambiar
VERSION
enlib/my_new_gem/version.rb
para que apunte a la nueva versión. - 2.Cambiar el título
Unreleased
a la versión nueva en elCHANGELOG.md
. - 3.Correr
bundle install
. - 4.Hacer commit (directo en master) de un nuevo release. Por ejemplo:
Releasing v0.1.0
. - 5.Crear el tag. Por ejemplo:
git tag v0.1.0
. - 6.Hacer push del tag. Por ejemplo:
git push origin v0.1.0
.
¡Listo!
Última actualización 3mo ago