Skip to content

Implement new feature or fix #10

Implement new feature or fix

Implement new feature or fix #10

Workflow file for this run

name: CI # Nombre del flujo de trabajo en GitHub Actions
on:
push:
tags:
- '*' # Ejecutar el flujo de trabajo en cada push que incluya un tag
jobs:
build:
runs-on: ubuntu-latest # Usar Ubuntu como entorno de ejecución
steps:
- name: Checkout code # Paso para obtener el código fuente del repositorio
uses: actions/checkout@v2
- name: Set up Go # Paso para configurar Go en el entorno de ejecución
uses: actions/setup-go@v2
with:
go-version: '1.x' # Versión de Go a usar
- name: Build for Linux # Paso para compilar el proyecto para Linux
run: |
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags 'osusergo netgo' -ldflags '-extldflags "-static"' -o cli-linux
- name: Build for Mac # Paso para compilar el proyecto para macOS
run: GOOS=darwin GOARCH=amd64 go build -o cli-mac
- name: Build for Windows # Paso para compilar el proyecto para Windows
run: GOOS=windows GOARCH=amd64 go build -o cli-windows.exe
- name: List files after builds
run: ls -l
- name: Upload Build Artifacts # Paso para subir los binarios como artefactos
uses: actions/upload-artifact@v2
with:
name: cli-binaries
path: |
./cli-linux
./cli-mac
./cli-windows.exe
release:
needs: build # Este trabajo depende del trabajo de compilación
runs-on: ubuntu-latest # Usar Ubuntu como entorno de ejecución para el lanzamiento
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Download Build Artifacts # Paso para descargar los artefactos del trabajo de build
uses: actions/download-artifact@v2
with:
name: cli-binaries
path: .
- name: Create or Update Release # Paso para crear o actualizar un release en GitHub
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Token de acceso personal de GitHub
with:
tag_name: ${{ github.ref }} # Nombre del tag asociado al release
release_name: Release ${{ github.ref }} # Nombre del release
draft: false # Indica si el release es un borrador
prerelease: false # Indica si el release es una versión preliminar
# overwrite: true # Permitir actualizar un release existente
- name: Upload Windows CLI # Paso para subir el ejecutable de Windows como activo del release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # URL de carga del release
asset_path: ./cli-windows.exe # Ruta del ejecutable de Windows
asset_name: cli-windows.exe # Nombre del activo en el release
asset_content_type: application/octet-stream # Tipo de contenido del activo
- name: Upload Linux CLI # Paso para subir el ejecutable de Linux como activo del release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # URL de carga del release
asset_path: ./cli-linux # Ruta del ejecutable de Linux
asset_name: cli-linux # Nombre del activo en el release
asset_content_type: application/octet-stream # Tipo de contenido del activo
- name: Upload Mac CLI # Paso para subir el ejecutable de macOS como activo del release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # URL de carga del release
asset_path: ./cli-mac # Ruta del ejecutable de macOS
asset_name: cli-mac # Nombre del activo en el release
asset_content_type: application/octet-stream # Tipo de contenido del activo