Git Actions de GitHub (Parte 5)
Continuamos con algún ejemplo de GitHub Action
workflow.yml: Cuando se crea una rama nueva se modifica en ella la versión del pom.xml, añadiéndole un sufijo extraido del nombre de dicha rama.
name: On create branch - Rename version pom.xml # Esta action se va a ejecutar cada vez que se crea una rama de main on: create: branches: - main jobs: # Tarea que se encargar de sacar el sufijo de la rama extract-suffix-name-branch: runs-on: ubuntu-latest #Lista de variables de salida del job outputs: suffix_name: ${{ steps.get-id.outputs.id }} steps: # Checkout repository - uses: actions/checkout@v2 # Utilizamos action que recupera los nombres de las ramas las ramas - name: Get branch name id: branch-name uses: tj-actions/branch-names@v5.1 # Mostramos por pantalla el nombre de la rama actual: 'prueba-100] description rama' - name: Running on the default branch. if: steps.branch-name.outputs.is_default == 'true' run: | echo "Running on default: ${{ steps.branch-name.outputs.current_branch }}" # Extraemos el sufijo que queremos utilizar para la version del pom: 'prueba-100' - id: get-id run: | id=$(echo ${{ steps.branch-name.outputs.current_branch }} | cut -d] -f1 | cut -d[ -f2) echo "::set-output name=id::$id" # Tarea que se encargar de sacar el prefijo de la versión del pom.xml extract-preffix-name-pom-version: runs-on: ubuntu-latest #Lista de variables de salida del job outputs: preffix_name: ${{ steps.get-id.outputs.id }} steps: # Checkout repository - uses: actions/checkout@v2 #Tarea extrae a la variable version, la version existente en el pom.xml - name: Extract Maven project version working-directory: ./example3-gitactions run: echo ::set-output name=version::$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec) id: project_version - run: echo "Maven project version is ${{ steps.project_version.outputs.version }}" - id: get-id run: | id=$(echo ${{ steps.project_version.outputs.version }} | cut -d- -f1) echo "::set-output name=id::$id" # Tarea que se encargar modificar la versión del pom.xml rename-pom-version-and-commit: # Se le indica que depende de las dos tareas anteriores needs: [extract-preffix-name-pom-version, extract-suffix-name-branch] runs-on: ubuntu-latest steps: # Checkout repository - uses: actions/checkout@v2 # Instalamos jdk 11 - name: Set up JDK 1.11 uses: actions/setup-java@v1 with: java-version: 1.11 # Realiza la modificación de la versión del pom.xml. # Indicando generateBackupPoms a true nos generaría un backup del pom.xml que podríamos utilizar para restaurarlo al mergear la pull-request. - name: set version pom working-directory: ./example3-gitactions run: mvn -B versions:set -DnewVersion=${{ needs.extract-preffix-name-pom-version.outputs.preffix_name }}-${{ needs.extract-suffix-name-branch.outputs.suffix_name }}-SNAPSHOT -DgenerateBackupPoms=false # Realiza una prueba de que sigue compilando perfectamente. - name: mvn package run: mvn -B package --file example3-gitactions/pom.xml # Subimos el cambio al repo. - name: Commit new version pom.xml - branch run: | git config --global user.name 'Roberto' git config --global user.email 'roberto-pf@github.com' git add . git commit -am "Automated report" git push
Nota: Repositorio Github
Documentación action que extrae el nombre de la rama: tj-actions/branch-names
Categorias
- adobe (2)
- agile (1)
- Alfresco (1)
- Android (26)
- Angular (6)
- angularjs (10)
- apache (1)
- axis (2)
- Bases de datos (14)
- Bootstrap (1)
- C# (3)
- Cámara (1)
- chrome (3)
- Codeigniter (2)
- Control de Versiones (2)
- CSS (25)
- CVS (1)
- Django (9)
- Django Rest Framework (1)
- DNS (1)
- Docker (3)
- dominio (1)
- eclipse (5)
- Entity Framework (2)
- ETL (1)
- Firefox (6)
- flash (1)
- freecad (1)
- Git (12)
- GitHub (4)
- gpg (2)
- Groovy (1)
- Handlebars (1)
- hibernate (4)
- hosting (1)
- HTML (50)
- HTML 5 (26)
- Impresión 3D (9)
- Inkscape (1)
- IOS (2)
- ireports (3)
- Java (44)
- Javascript (55)
- JBoss (5)
- JPA (2)
- JQuery (20)
- Json (7)
- JSP (6)
- Keycloak (1)
- Lamp (1)
- LDAP (2)
- lean (1)
- linkedin (1)
- LINQ (1)
- linux (13)
- Livecycle (1)
- log (1)
- microcontroladores (1)
- MongoDB (4)
- MySQL (8)
- Node.js (5)
- OC4J (1)
- Openshift (2)
- Oracle (6)
- Patrones de Diseño (1)
- Photoshop (2)
- php (20)
- PostgreSQL (1)
- python (19)
- rabbitmq (1)
- Raspberry PI (13)
- Raspherry PI (5)
- React (6)
- seguridad (3)
- Selenium (3)
- Sencha Touch (1)
- Sin categoría (29)
- Spring (17)
- spring-boot (3)
- SQL (7)
- SQLServer (1)
- SSO (1)
- struts (2)
- SVN (1)
- Talend (1)
- Tomcat (6)
- unity (3)
- Visual Studio Code (2)
- vmware (5)
- Web Services (11)
- windows (18)
- wordpress (10)
- Xiaomi (1)
- xml (2)
Trabajos Realizados
- App Android – Autoka Fr
- App Android – Cartelera Cántabra
- App Android – Gramática y Vocabulario Ingles
- App Android – Hoja de Gastos
- App Android – Hotel Torre Cristina
- App Android – OcioEnjoy
- App Android – Visor CardBoard
- App Firefox – Managapp
- DiamanteBomba – DisasterCode
- Generador de Partes de Trabajo
- GitHub – Android Web Generator
- GitHub – Dynamic Angular Gallery
- GitHub – Dynamic React Gallery
- GitHub – Sotilizator
- GitHub – SpringAngularJS
- GitHub – Swiper Dynamic Angular Gallery
- HazParejas – DisasterCode
- RompeCabezas – DisasterCode
- Unity Game – English Couple
- Unity Game – Kill Wasp
- WordPress – El Buen Apicultor
- WordPress – El Cajón de los Retales
- WordPress – El Vestidito Azul
- WordPress – Feuchas
- WordPress – Fragua de Navajas Ponce
- WordPress – Humor a las Tres
- WordPress – Photo Places