From fdfcb9d40da62a20dbbb0a128cc4934821a66176 Mon Sep 17 00:00:00 2001 From: rg2011 Date: Fri, 17 Jan 2020 17:20:40 +0100 Subject: [PATCH] Added github action to tags --- .github/workflows/maven.yml | 69 +++++++++++++++++++++++++++++++++++++ README.md | 32 ++++++++++++++--- pom.xml | 46 ++++++++++++++++++++++++- 3 files changed, 141 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/maven.yml diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 0000000..e7cd7b1 --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,69 @@ +# ------------------------------------------------------------------------------------- +# Copyright 2020 Telefónica Soluciones de Informática y Comunicaciones de España, S.A.U. +# This file is part of Pentaho DSP. +# Pentaho DSP is free software: you can redistribute it and/or +# modify it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# Pentaho DSP is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero +# General Public License for more details. +# You should have received a copy of the GNU Affero General Public License +# along with this software. If not, see http://www.gnu.org/licenses/. +# For those usages not covered by this license please contact with +# sc_support at telefonica dot com +# ------------------------------------------------------------------------------------- + +name: Maven Build + +on: + push: + tags: + - 'v*' + +jobs: + build: + runs-on: ubuntu-latest + steps: + + # Standard steps - check out repo & build with maven + - name: Checkout repo + uses: actions/checkout@v1 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Initialize Maven + run: mvn -B initialize + - name: Build with Maven + run: mvn -B package + + # Create a release for the current tag + - name: Create Release + id: create_release + uses: actions/create-release@v1.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: false + prerelease: false + + # Get tag name. strip the initial "v" + - name: Get Version + id: get_version + run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\/v/} + + # Upload compiled jar to the release + - name: Upload Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./target/pentaho-dsp-${{ steps.get_version.outputs.VERSION }}.jar + asset_name: pentaho-dsp-${{ steps.get_version.outputs.VERSION }}.jar + asset_content_type: application/java-archive diff --git a/README.md b/README.md index eecaaa0..853417d 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,35 @@ pentaho-dsp es una librería que extiende Pentaho y que permite reutilizar esque La librería reemplaza al vuelo el esquema de la base de datos por el nombre de usuario de la sesión de Pentaho. # Build - Para generar el fichero `.jar` únicamente es necesario ejecutar los siguientes comandos Maven en el orden indicado: - - 1. `mvn clean` - 2. `mvn compile` + +Para generar el fichero `.jar` únicamente es necesario ejecutar los siguientes comandos Maven en el orden indicado: + + 1. `mvn initialize` + 1. `mvn clean` + 2. `mvn compile` 3. `mvn clean package` # Directorios - **lib**: Almacena una copia de las librerias necesarias para el desarrollo que no se encuentran en el repositorio Maven. - - **src**: Almacena el cógido java \ No newline at end of file + - **src**: Almacena el código java + +# Releases + +Este proyecto utiliza [Github Actions](ihttps://github.com/features/actions) para construir automáticamente un archivo jar con cada release. Para liberar una nueva versión, es necesario: + +- Modificar el número de versión en el atributo del fichero pom.xml: + +```xml +A.B.C +``` + +- Hacer commit de los cambios +- Crear un tag git con el número de versión + +```bash +git tag -a vA.B.C -m "Versión A.B.C" +git push --tags +``` + +Nótese que el número de versión **lleva un prefijo "v" en el tag git, pero no en el pom.xml**. Esto es por prácticas comunes tanto en Maven como en Git. diff --git a/pom.xml b/pom.xml index 9c3c100..199db97 100644 --- a/pom.xml +++ b/pom.xml @@ -39,6 +39,7 @@ + org.apache.maven.plugins maven-assembly-plugin @@ -51,6 +52,49 @@ + + org.apache.maven.plugins + maven-install-plugin + 3.0.0-M1 + + + initialize + install-file + mondrian + + lib/mondrian-3.0.jar + mondrian + mondrian + 3.0 + jar + + + + initialize + install-file + pentaho-platform-core + + lib/pentaho-platform-core-8.2.0.0-342.jar + pentaho + pentaho-platform-core + 8.2.0.0-342 + jar + + + + initialize + install-file + pentaho-platform-api + + lib/pentaho-platform-api-8.2.0.1-427.jar + pentaho + pentaho-platform-api + 8.2.0.1-427 + jar + + + + @@ -99,4 +143,4 @@ - \ No newline at end of file +