Implement new feature or fix #10
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |