Infra
CD Apply
- cloud: (obligatori) Entorn al núvol. Valors possibles:
aws
(default)azure
gcp
- terraform_version: (obligatori) Versió de Terraform.
- infra_version_plan: (obligatori) Versió del pla d’Infracost.
- environment: (obligatori) Entorn.
- healthcheck_url: (opcional) URL del comprovador d’estat. Ha de ser
https://<endpoint_url.gencat.cat>/
. Definir si existeix un endpoint després del deploy i una expressió d’avaluació del body. - healthcheck_regex: (opcional) Regressió de l’estat. Ha de tenir format semàntic entre cometes, ex:
"1.0.0"
. Definir si existeix un endpoint després del deploy i una expressió d’avaluació del body. - healthcheck_timeout: (opcional) Temps màxim per a la comprovació d’estat. Ha de tenir un valor numèric entre cometes, ex:
"300"
. Definir si existeix un endpoint després del deploy i una expressió d’avaluació del body. - mat: (opcional) Per habilitar o deshabilitar la MAT del repositori. Valors possibles:
true
false
(default)
- repository_mat: (DEPRECATED) Per habilitar o deshabilitar la MAT del repositori.
- selenium_enabled: (DEPRECATED) Per habilitar o deshabilitar Selenium.
- selenium_urlapp: (DEPRECATED) URL de Selenium, ha de tenir el valor:
https://<urlapp.gencat.cat>
. Definir només si Selenium està habilitat. - selenium_umbral: (DEPRECATED) Llindar de Selenium. Ha de tenir un valor numèric entre cometes, ex:
"20"
. Definir només si Selenium està habilitat. Valor per defecte: 20. - jira_project_key: (DEPRECATED) Clau del projecte Jira. Definir només si Selenium està habilitat.
- jira_issue_key: (DEPRECATED) Clau de l’issue de Jira. Definir només si Selenium està habilitat.
- itsm_enabled: (DEPRECATED) Aquest paràmetre està obsolet, i per tant no importa el valor que prengui que no es farà ús d’aquest.
- itsm_id_change_coordinator: (obligatori) ID del coordinador de canvis de l’ITSM.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/infra-cd-apply-reusable.yaml@v4
secrets: inherit
with:
cloud: aws
terraform_version: 1.7.5
infra_version_plan: ${{ inputs.infra_version_plan }}
environment: ${{ inputs.environment }}
healthcheck_url: "https://<endpoint_url.gencat.cat>/"
healthcheck_regex: "1.0.0"
healthcheck_timeout: "300"
mat: true
itsm_id_change_coordinator: ${{ inputs.itsm_id_change_coordinator }}
CI on Commit
- terraform_version: (obligatori) Versió de Terraform.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/infra-ci-on-commit-reusable.yaml@v4
secrets: inherit
with:
terraform_version: 1.7.5
CI on PR
- cloud: (obligatori) Entorn al núvol. Valors possibles:
aws
(default)azure
gcp
- terraform_version: (obligatori) Versió de Terraform.
- checkov: (opcional) Definir només si Checkov està habilitat. Valors possibles:
true
(default)false
- infracost: (opcional) Definir només si Infracost està habilitat. Valors possibles:
true
(default)false
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/infra-ci-on-pr-reusable.yaml@v4
secrets: inherit
with:
cloud: aws
terraform_version: 1.7.5
Container
CD
- technology: (opcional) Tecnologia del projecte. Valors possibles:
java
java-maven
nodejs
dotnet
IMPORTANT .Net Framework no està suportatpython
java-gradle
custom
- get_project_name_command: (opcional) Comanda per a obtenir el nom del projecte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_version_command”.
- get_version_command: (opcional) Comanda per obtenir la versió de l’artefacte de l’artefacte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_project_name_command”.
- project_name: (opcional) Nom del projecte, especificar només si no hi ha compilació en el projecte.
- cloud: (obligatori) Entorn al núvol. Valors possibles:
aws
(default)azure
gcp
- engine: (obligatori) Plataforma de desplegament. Valors possibles:
ecs
(default)aca
- artifact_version: (obligatori) Versió de l’artefacte.
- environment: (obligatori) Entorn.
- service_name: (opcional) Nom del servei. Definir només si el projecte es basa en AWS.
- container_app: (opcional) Nom de l’aplicació de contenidors. Definir només si el projecte es basa en Azure ACA engine.
- registry_name:(obligatori) Nom del registre.
- cluster_name: (opcional) Nom del clúster. Definir si el projecte es basa en un motor AWS o ECS.
- task_definition_name: (opcional) Nom de la definició de la tasca. Definir només si el projecte es basa en AWS.
- resource_group: (opcional) Nom de grup de recurs. Definir si el projecte es basa en Azure Cloud o ACA engine.
- healthcheck_url: (opcional) URL del comprovador d’estat. Ha de ser
https://<endpoint_url.gencat.cat>/
. Definir si existeix un endpoint després del deploy i una expressió d’avaluació del body. - healthcheck_regex: (opcional) Regressió de l’estat. Ha de tenir format semàntic entre cometes, ex:
"1.0.0"
. Definir si existeix un endpoint després del deploy i una expressió d’avaluació del body. - healthcheck_timeout: (opcional) Temps màxim per a la comprovació d’estat. Ha de tenir un valor numèric entre cometes, ex:
"300"
. Definir si existeix un endpoint després del deploy i una expressió d’avaluació del body. - mat: (opcional) Per habilitar o deshabilitar la MAT del repositori. Valors possibles:
true
false
(default)
- repository_mat: (DEPRECATED) Per habilitar o deshabilitar la MAT del repositori.
- selenium_enabled: (DEPRECATED) Per habilitar o deshabilitar Selenium.
- selenium_urlapp: (DEPRECATED) URL de Selenium, ha de tenir el valor:
https://<urlapp.gencat.cat>
. Definir només si Selenium està habilitat. - selenium_umbral: (DEPRECATED) Llindar de Selenium. Ha de tenir un valor numèric entre cometes, ex:
"20"
. Definir només si Selenium està habilitat. Valor per defecte: 20. - jira_project_key: (DEPRECATED) Clau del projecte Jira. Definir només si Selenium està habilitat.
- jira_issue_key: (DEPRECATED) Clau de l’issue de Jira. Definir només si Selenium està habilitat.
- itsm_enabled: (DEPRECATED) Aquest paràmetre està obsolet, i per tant no importa el valor que prengui que no es farà ús d’aquest.
- itsm_id_change_coordinator: (obligatori) ID del coordinador de canvis de l’ITSM.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/container-cd-reusable.yaml@v4
secrets: inherit
with:
technology: java
cloud: aws
engine: ecs
artifact_version: ${{ inputs.artifact_version }}
environment: ${{ inputs.environment }}
service_name: ${{ inputs.service_name }}
registry_name: ${{ inputs.registry_name }}
cluster_name: ${{ inputs.cluster_name }}
task_definition_name: ${{ inputs.task_definition_name }}
resource_group: ${{ inputs.resource_group }}
healthcheck_url: "https://<endpoint_url.gencat.cat>/"
healthcheck_regex: "1.0.0"
healthcheck_timeout: "300"
mat: true
itsm_id_change_coordinator: ${{ inputs.itsm_id_change_coordinator }}
CI on commit to develop
- technology: (opcional) Tecnologia del projecte. Valors possibles:
java
java-maven
nodejs
dotnet
IMPORTANT .Net Framework no està suportatpython
java-gradle
custom
- docker_build_context: (opcional) Context de construcció de Docker. Per defecte és
"."
(l’arrel). Valor per defecte:"."
- get_project_name_command: (opcional) Comanda per a obtenir el nom del projecte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_version_command”.
- get_version_command: (opcional) Comanda per obtenir la versió de l’artefacte de l’artefacte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_project_name_command”.
- project_name: (opcional) Nom del projecte, especificar només si no hi ha compilació en el projecte. En el cas de projectes amb tecnologia .NET i que en el repositori de projecte existeixin mes de dos .csproj, aquesta propietat project_name és obligatòria.
- java_version: (opcional) Versió de Java. Definir només si el projecte es basa en tecnologia Java.
- java_distribution: (opcional) Distribució de Java. Definir només si el projecte es basa en tecnologia Java.
- maven_version: (opcional) Versió de Maven. Definir només si el projecte es basa en tecnologia Java.
- sonar_exclusions: (opcional) Exclusió de Sonar, pot estar buit.
- node_version: (opcional) Versió de Node. Definir només si el projecte es basa en tecnologia Node.
- dotnet_version: (opcional) Versió de .Net. Definir només si el projecte es basa en tecnologia .Net.
- install_build_command: (opcional) Comanda personalitzada per construir i empaquetar el projecte. El valor per defecte per a nodejs és
"npm ci && npm run build"
, per a java maven"mvn package -Dmaven.test.skip=true"
, per a java gradle"gradle clean build"
, per a dotnet"dotnet restore $PROJECT_PATH && dotnet build $PROJECT_PATH --configuration Release && dotnet publish $PROJECT_PATH --configuration Release --output ./out"
, i per a python"pip install -r requirements.txt && python setup.py sdist bdist_wheel"
. Si no es proporciona cap comanda personalitzada, es farà servir la comanda per defecte segons la tecnologia especificada. - python_version: (opcional) Versió de python. Definir només si el projecte es basa en tecnologia python.
- gradle_version: (opcional) Versió de gradle. Definir només si el projecte es basa en tecnologia python.
- sonar_exclusions: (opcional) Exclusió de Sonar. Exemples:
node_modules/**
test/**
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/container-ci-on-commit-develop-reusable.yaml@v4
secrets: inherit
with:
technology: java
java_version: 21
java_distribution: temurin
maven_version: 3.9.5
# install_build_command: "mvn package -Dmaven.test.skip=true"
CI on commit
- technology: (opcional) Tecnologia del projecte. Valors possibles:
java
java-maven
nodejs
dotnet
IMPORTANT .Net Framework no està suportatpython
java-gradle
custom
- get_project_name_command: (opcional) Comanda per a obtenir el nom del projecte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_version_command”.
- get_version_command: (opcional) Comanda per obtenir la versió de l’artefacte de l’artefacte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_project_name_command”.
- project_name: (opcional) Nom del projecte, especificar només si no hi ha compilació en el projecte. En el cas de projectes amb tecnologia .NET i que en el repositori de projectes hi hagi més de dos .csproj o projectes que no se li especifiqui la tecnologia, aquesta propietat project_name és obligatòria.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/container-ci-on-commit-reusable.yaml@v4
secrets: inherit
with:
technology: java
CI on PR
-
technology: (opcional) Tecnologia del projecte. Valors possibles:
java
java-maven
nodejs
dotnet
IMPORTANT .Net Framework no està suportatpython
java-gradle
custom
-
get_project_name_command: (opcional) Comanda per a obtenir el nom del projecte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_version_command”.
-
get_version_command: (opcional) Comanda per obtenir la versió de l’artefacte de l’artefacte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_project_name_command”.
-
java_version: (opcional) Versió de Java. Definir només si el projecte es basa en tecnologia Java.
-
java_distribution: (opcional) Distribució de Java. Definir només si el projecte es basa en tecnologia Java.
-
maven_version: (opcional) Versió de Maven. Definir només si el projecte es basa en tecnologia Java.
-
sonar_exclusions: (opcional) Exclusió de Sonar, pot estar buit.
-
node_version: (opcional) Versió de Node. Definir només si el projecte es basa en tecnologia Node.
-
dotnet_version: (opcional) Versió de .Net. Definir només si el projecte es basa en tecnologia .Net.
-
python_version: (opcional) Versió de pythont. Definir només si el projecte es basa en tecnologia python.
-
gradle_version: (opcional) Versió de gradle. Definir només si el projecte es basa en tecnologia python.
-
sonar_exclusions: (opcional) Exclusió de Sonar. Exemples:
node_modules/**
test/**
-
unit_test: (opcional) Realització de proves unitàries. Valor per defecte: false.
-
sonarqube: (opcional) Utilització de SonarQube. Valor per defecte: true.
-
dependabot: (opcional) Activació de Dependabot. Valor per defecte: true.
-
install_build_command: (opcional) Comanda personalitzada per construir i empaquetar el projecte. El valor per defecte per a nodejs és
"npm ci && npm run build"
, per a java maven"mvn package -Dmaven.test.skip=true"
, per a java gradle"gradle clean build"
, per a dotnet"dotnet restore $PROJECT_PATH && dotnet build $PROJECT_PATH --configuration Release && dotnet publish $PROJECT_PATH --configuration Release --output ./out"
, i per a python"pip install -r requirements.txt && python setup.py sdist bdist_wheel"
. Si no es proporciona cap comanda personalitzada, es farà servir la comanda per defecte segons la tecnologia especificada. -
custom_test_command:(opcional) Comanda personalitzada per realitzar les proves al projecte. Els valors per defecte són els següents segons la tecnologia:
- java/java-maven:
"mvn surefire:test"
- java-gradle:
"gradle test"
- nodejs:
"npm test"
- dotnet:
"dotnet test $TEST_PROJECT_PATH --configuration Release"
- python:
"pytest tests/"
- java/java-maven:
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/container-ci-on-pr-reusable.yaml@v4
secrets: inherit
with:
technology: java
java_version: 21
java_distribution: temurin
maven_version: 3.9.5
Function
CD
- technology: (opcional) Tecnologia del projecte. Valors possibles:
java
java-maven
nodejs
dotnet
IMPORTANT .Net Framework no està suportatpython
custom
- get_project_name_command: (opcional) Comanda per a obtenir el nom del projecte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_version_command”.
- get_version_command: (opcional) Comanda per obtenir la versió de l’artefacte de l’artefacte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_project_name_command”.
- project_name: (opcional) Nom del projecte, especificar només si no hi ha compilació en el projecte.
- cloud: Entorn al núvol. Valors possibles:
aws
(default)azure
gcp
- engine: (obligatori) Plataforma de desplegament. Valors possibles:
lambda
afunction
- artifact_version: (obligatori) Versió de l’artefacte.
- environment: (obligatori) Entorn.
- function_names: (obligatori) Noms de les funcions.
- folder_names: (opcional) Noms dels fitxers de les funcions. Especificar si el codi de la funció o funcions està en un directori i no a l’arrel. Especificar aquest paràmetre abans que el “functions_folder_path”.
- storage_name: (opcional) Nom d’emmagatzematge. Descomentar només si s’espera que el fitxer .zip tingui més de 50 MB i és necessari pujar-lo a un bucket.
- functions_folder_path: (opcional) Ruta del fitxer de les funcions. Passar el paràmetre nomès si s’ha especificat el “folders_names”. Descomentar només si les funcions es troben en una carpeta diferent a l’arrel del repositori que contenta subdirectoris per cadascuna de les funcions.
- healthcheck_url: (opcional) URL del comprovador d’estat. Ha de ser
https://<endpoint_url.gencat.cat>/
. Definir si existeix un endpoint després del deploy i una expressió d’avaluació del body. - healthcheck_regex: (opcional) Regresió de l’estat. Ha de tenir format semàntic entre cometes, ex: “1.0.0”. Definir si existeix un endpoint després del deploy i una expressió d’avaluació del body.
- healthcheck_timeout: (opcional) Temps màxim per a la comprovació d’estat. Ha de tenir un valor numèric entre cometes, ex: “300”. Definir si existeix un endpoint després del deploy i una expressió d’avaluació del body.
- mat: (opcional) Per habilitar o deshabilitar la MAT del repositori. Valors possibles:
true
false
(default)
- repository_mat: (DEPRECATED) Per habilitar o deshabilitar la MAT del repositori.
- selenium_enabled: (DEPRECATED) Per habilitar o deshabilitar Selenium.
- selenium_urlapp: (DEPRECATED) URL de Selenium, ha de tenir el valor:
https://<urlapp.gencat.cat>
. Definir només si Selenium està habilitat. - selenium_umbral: (DEPRECATED) Llindar de Selenium. Ha de tenir un valor numèric entre cometes, ex:
"20"
. Definir només si Selenium està habilitat. Valor per defecte: 20. - jira_project_key: (DEPRECATED) Clau del projecte Jira. Definir només si Selenium està habilitat.
- jira_issue_key: (DEPRECATED) Clau de l’issue de Jira. Definir només si Selenium està habilitat.
- itsm_enabled: (DEPRECATED) Aquest paràmetre està obsolet, i per tant no importa el valor que prengui que no es farà ús d’aquest.
- itsm_id_change_coordinator: (obligatori) ID del coordinador de canvis de l’ITSM.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/function-cd-reusable.yaml@v4
secrets: inherit
with:
technology: nodejs
cloud: aws
engine: lambda
artifact_version: ${{ inputs.artifact_version }}
environment: ${{ inputs.environment }}
function_names: ${{ inputs.function_names }}
folder_names: ${{ inputs.folder_names}}
storage_name: ${{ inputs.storage_name }}
healthcheck_url: "https://<endpoint_url.gencat.cat>/"
healthcheck_regex: "1.0.0"
healthcheck_timeout: "300"
mat: true
itsm_id_change_coordinator: ${{ inputs.itsm_id_change_coordinator }}
CI on Commit
- technology: (opcional) Tecnologia del projecte. Valors possibles:
java
java-maven
nodejs
dotnet
IMPORTANT .Net Framework no està suportatpython
custom
- get_project_name_command: (opcional) Comanda per a obtenir el nom del projecte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_version_command”.
- get_version_command: (opcional) Comanda per obtenir la versió de l’artefacte de l’artefacte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_project_name_command”.
- project_name: (opcional) Nom del projecte, especificar només si no hi ha compilació en el projecte. En el cas de projectes amb tecnologia .NET i que en el repositori de projecte existeixin mes de dos .csproj, aquesta propietat project_name és obligatòria.
- java_version: (opcional) Versió de Java. Definir només si el projecte es basa en tecnologia Java.
- java_distribution: (opcional) Distribució de Java. Definir només si el projecte es basa en tecnologia Java.
- maven_version: (opcional) Versió de Maven. Definir només si el projecte es basa en tecnologia Java.
- sonar_exclusions: (opcional) Exclusió de Sonar, pot estar buit.
- node_version: (opcional) Versió de Node. Definir només si el projecte es basa en tecnologia Node.
- dotnet_version: (opcional) Versió de .Net. Definir només si el projecte es basa en tecnologia .Net.
- python_version: (opcional) Versió de pythont. Definir només si el projecte es basa en tecnologia python.
- install_build_command: (opcional) Comanda personalitzada per construir i empaquetar el projecte. El valor per defecte per a nodejs és
"npm ci && npm run build"
, per a java maven"mvn package -Dmaven.test.skip=true"
, per a java gradle"gradle clean build"
, per a dotnet"dotnet restore $PROJECT_PATH && dotnet build $PROJECT_PATH --configuration Release && dotnet publish $PROJECT_PATH --configuration Release --output ./out"
, i per a python"pip install -r requirements.txt && python setup.py sdist bdist_wheel"
. Si no es proporciona cap comanda personalitzada, es farà servir la comanda per defecte segons la tecnologia especificada. - sonar_exclusions: (opcional) Exclusió de Sonar. Exemples:
node_modules/**
test/**
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/function-ci-on-commit-reusable.yaml@v4
secrets: inherit
with:
technology: java
java_version: 21
java_distribution: temurin
maven_version: 3.9.5
# install_build_command: "mvn package -Dmaven.test.skip=true"
CI on PR
-
technology: (opcional) Tecnologia del projecte. Valors possibles:
java
java-maven
nodejs
dotnet
IMPORTANT .Net Framework no està suportatpython
custom
-
get_project_name_command: (opcional) Comanda per a obtenir el nom del projecte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_version_command”.
-
get_version_command: (opcional) Comanda per obtenir la versió de l’artefacte de l’artefacte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_project_name_command”.
-
java_version: (opcional) Versió de Java. Definir només si el projecte es basa en tecnologia Java.
-
java_distribution: (opcional) Distribució de Java. Definir només si el projecte es basa en tecnologia Java.
-
maven_version: (opcional) Versió de Maven. Definir només si el projecte es basa en tecnologia Java.
-
sonar_exclusions: (opcional) Exclusió de Sonar, pot estar buit.
-
node_version: (opcional) Versió de Node. Definir només si el projecte es basa en tecnologia Node.
-
dotnet_version: (opcional) Versió de .Net. Definir només si el projecte es basa en tecnologia .Net.
-
python_version: (opcional) Versió de pythont. Definir només si el projecte es basa en tecnologia python.
-
sonar_exclusions: (opcional) Exclusió de Sonar. Exemples:
node_modules/**
test/**
-
unit_test: (opcional) Indica si s’han d’executar proves unitàries com a part del workflow d’integració contínua. Valor per defecte: false.
-
sonarqube: (opcional) Indica si s’ha d’integrar SonarQube en el procés d’integració contínua. Valor per defecte: true.
-
dependabot: (opcional) Permet activar o desactivar la funcionalitat de Dependabot en el workflow. Valor per defecte: true.
-
install_build_command: (opcional) Comanda personalitzada per construir i empaquetar el projecte. El valor per defecte per a nodejs és
"npm ci"
, per a java"mvn clean compile"
, per a dotnet"dotnet restore $PROJECT_PATH && dotnet build $PROJECT_PATH --configuration Release"
, i per a python" pip install -r requirements.txt"
. Si no es proporciona cap comanda personalitzada, es farà servir la comanda per defecte segons la tecnologia especificada. custom_test_command:(opcional) Comanda personalitzada per realitzar les proves al projecte. Els valors per defecte són els següents segons la tecnologia:- java/java-maven:
"mvn surefire:test"
- nodejs:
"npm test"
- dotnet:
"dotnet test $TEST_PROJECT_PATH --configuration Release"
- python:
"pytest tests/"
- java/java-maven:
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/function-ci-on-pr-reusable.yaml@v4
secrets: inherit
with:
technology: java
java_version: 21
java_distribution: temurin
maven_version: 3.9.5
Static
CD
- technology: (opcional) Tecnologia del projecte. Valors possibles:
raw
nodejs
custom
- get_project_name_command: (opcional) Comanda per a obtenir el nom del projecte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_version_command”.
- get_version_command: (opcional) Comanda per obtenir la versió de l’artefacte de l’artefacte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_project_name_command”.
- project_name: (opcional) Nom del projecte, especificar només si no hi ha compilació en el projecte.
- cloud: (obligatori) Entorn al núvol. Valors possibles:
aws
(default)azure
gcp
- engine: (obligatori) Plataforma de desplegament. Valors possibles:
s3
ablobstorage
cloudstorage
swebapp
- swebapp_name: (opcional) Nom de la Static Web App a desplegar a Azure
- artifact_version: (obligatori) Versió de l’artefacte.
- environment: (obligatori) Entorn.
- storage_name: (opcional) Nom d’emmagatzematge.
- destination_prefix: (opcional) Prefix de destinació. Definir si el núvol és AWS i hi ha una subcarpeta dins del bucket de S3, especifiqueu-ho aquí.
- distribution_id: (opcional) ID de distribució (CDN). Definir si el núvol és AWS, hi ha una distribució de CloudFront associada al bucket de S3, i es vol realitzar invalidació de caché. Especifiqueu-ho aquí.
- cdn_profile_name: (opcional) Nom del perfil de CDN d’Azure. Definir si el núvol és Azure, i es vol realitzar invalidació de caché. Especifiqueu-ho aquí.
- cdn_endpoint_name: (opcional) Nom del endpoint CDN d’Azure. Definir si el núvol és Azure, i es vol realitzar invalidació de caché. Especifiqueu-ho aquí.
- invalidation_paths: (opcional) Una llista d’un o més paths separats per espais per invalidar a la memòria caché de la distribució (CDN).
- healthcheck_url: (opcional) URL del comprovador d’estat. Ha de ser
https://<endpoint_url.gencat.cat>/
. Definir si existeix un endpoint després del deploy i una expressió d’avaluació del body. - healthcheck_regex: (opcional) Regressió de l’estat. Ha de tenir format semàntic entre cometes, ex:
"1.0.0"
. Definir si existeix un endpoint després del deploy i una expressió d’avaluació del body. - healthcheck_timeout: (opcional) Temps màxim per a la comprovació d’estat. Ha de tenir un valor numèric entre cometes, ex:
"300"
. Definir si existeix un endpoint després del deploy i una expressió d’avaluació del body. - mat: (opcional) Per habilitar o deshabilitar la MAT del repositori. Valors possibles:
true
false
(default)
- repository_mat: (DEPRECATED) Per habilitar o deshabilitar la MAT del repositori.
- selenium_enabled: (DEPRECATED) Per habilitar o deshabilitar Selenium.
- selenium_urlapp: (DEPRECATED) URL de Selenium, ha de tenir el valor:
https://<urlapp.gencat.cat>
. Definir només si Selenium està habilitat. - selenium_umbral: (DEPRECATED) Llindar de Selenium. Ha de tenir un valor numèric entre cometes, ex:
"20"
. Definir només si Selenium està habilitat. Valor per defecte: 20. - jira_project_key: (DEPRECATED) Clau del projecte Jira. Definir només si Selenium està habilitat.
- jira_issue_key: (DEPRECATED) Clau de l’issue de Jira. Definir només si Selenium està habilitat.
- itsm_enabled: (DEPRECATED) Aquest paràmetre està obsolet, i per tant no importa el valor que prengui que no es farà ús d’aquest.
- itsm_id_change_coordinator: (obligatori) ID del coordinador de canvis de l’ITSM.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/static-cd-reusable.yaml@v4
secrets: inherit
with:
technology: nodejs
cloud: aws
engine: s3
artifact_version: ${{ inputs.artifact_version }}
environment: ${{ inputs.environment }}
storage_name: ${{ inputs.storage_name }}
destination_prefix: "<bucket_subfolder_name>"
distribution_id: ${{ inputs.distribution_id }}
invalidation_paths: "/*"
healthcheck_url: "https://<endpoint_url.gencat.cat>/"
healthcheck_regex: "1.0.0"
healthcheck_timeout: "300"
mat: true
itsm_id_change_coordinator: ${{ inputs.itsm_id_change_coordinator }}
CI on commit
- technology: (opcional) Tecnologia del projecte. Valors possibles:
raw
nodejs
custom
- get_project_name_command: (opcional) Comanda per a obtenir el nom del projecte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_version_command”.
- get_version_command: (opcional) Comanda per obtenir la versió de l’artefacte de l’artefacte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_project_name_command”.
- project_name: (opcional) Nom del projecte, especificar només si no hi ha compilació en el projecte.
- node_version: (opcional) Versió de Node. Definir només si el projecte es basa en tecnologia Node.
- install_build_command: (opcional) (opcional) Comanda personalitzada per construir i empaquetar el projecte. El valor per defecte per a nodejs és
"npm ci && npm run build"
. - sonar_exclusions: (opcional) Exclusió de Sonar. Exemples:
node_modules/**
test/**
- source_path: (opcional) Paràmetre de la ruta de sortida de l’arxiu angular.json. Valor per defecte: src.
- sonarqube: (opcional) Indica si s’ha d’executar l’anàlisi de codi mitjançant SonarQube. Valor per defecte: false.
- dependabot: (opcional) Indica si s’ha de permetre l’ús de Dependabot. Valor per defecte: false.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/static-ci-on-commit-reusable.yaml@v4
secrets: inherit
with:
technology: nodejs
node_version: 20.x
# install_build_command: "npm ci && npm run build"
sonar_exclusions: "node_modules/**,test/**"
source_path: "dist"
CI on PR
-
technology: (opcional) Tecnologia del projecte. Valors possibles:
raw
nodejs
custom
-
get_project_name_command: (opcional) Comanda per a obtenir el nom del projecte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_version_command”.
-
get_version_command: (opcional) Comanda per obtenir la versió de l’artefacte de l’artefacte del fitxer descriptor. El paràmetre serà sempre requerit si la tecnologia és “custom”. Per a altres tecnologies, si s’informa, també serà requerit informar el paràmetre “get_project_name_command”.
-
node_version: (opcional) Versió de Node. Definir només si el projecte es basa en tecnologia Node.
-
sonar_exclusions: (opcional) Exclusió de Sonar. Exemples:
node_modules/**
test/**
-
unit_test: (opcional) Indica si s’han d’executar proves unitàries com a part del flux de treball d’integració contínua. Valor per defecte: false.
-
sonarqube: (opcional) Habilita la integració amb SonarQube. Valor per defecte: true.
-
dependabot: (opcional) Activa o desactiva l’ús de Dependabot Valor per defecte: true.
-
install_build_command: (opcional) Comanda personalitzada per construir i empaquetar el projecte. El valor per defecte per a nodejs és
"npm ci"
. Si no es proporciona cap comanda personalitzada, es farà servir la comanda per defecte segons la tecnologia especificada. -
custom_test_command:(opcional) Comanda personalitzada per realitzar les proves al projecte. Els valors per defecte són els següents segons la tecnologia:
- nodejs:
"npm test"
- nodejs:
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/static-ci-on-pr-reusable.yaml@v4
secrets: inherit
with:
technology: nodejs
node_version: 20.x
sonar_exclusions: "node_modules/**,test/**"
Library
CI on Commit
- technology: (obligatori) Tecnologia del projecte. Valors possibles:
java
java-maven
nodejs
dotnet
IMPORTANT .Net Framework no està suportatjava-gradle
- java_version: (opcional) Versió de Java. Definir només si el projecte es basa en tecnologia Java.
- java_distribution: (opcional) Distribució de Java. Definir només si el projecte es basa en tecnologia Java.
- maven_version: (opcional) Versió de Maven. Definir només si el projecte es basa en tecnologia Java.
- sonar_exclusions: (opcional) Exclusió de Sonar, pot estar buit.
- node_version: (opcional) Versió de Node. Definir només si el projecte es basa en tecnologia Node.
- dotnet_version: (opcional) Versió de .Net. Definir només si el projecte es basa en tecnologia .Net.
- gradle_version: (opcional) Versió de gradle. Definir només si el projecte es basa en tecnologia python.
- install_build_command: (opcional) Comanda personalitzada per construir i empaquetar el projecte. El valor per defecte per a nodejs és
"npm ci"
, per a java maven"mvn clean compile"
, per a java gradle"gradle clean build"
, per a dotnet"dotnet build $PROJECT_PATH -c Release"
. Si no es proporciona cap comanda personalitzada, es farà servir la comanda per defecte segons la tecnologia especificada. - custom_publish_command: (opcional) Comando personalitzat per a realitzar la publicacion. El valor per defecte per a nodejs és
npm publish
, per a java ésmvn -B deploy -Dmaven.test.skip=*true -DaltDeploymentRepository=*github::default::https://maven.pkg.github.com/${{ github.repository }} -DdeployAtEnd=*true
, per a dotnet ésdotnet nuget push ./build/*.nupkg --source "github" --api-*key ${{ secrets.GITHUB_TOKEN }}
i per a gradle ésgradle publish
. Si no es proporciona aquest comando personalitzat, la publicacion es hara amb els comandos per defecte. - sonar_exclusions: (opcional) Exclusió de Sonar. Exemples:
node_modules/**
test/**
- sonarqube: (opcional) Indica si s’ha d’executar l’anàlisi de codi mitjançant SonarQube. Valor per defecte: false.
- dependabot: (opcional) Indica si s’ha de permetre l’ús de Dependabot. Valor per defecte: false.
- project_name: (opcional) Nom del projecte, especificar només si no hi ha compilació en el projecte. En el cas de projectes amb tecnologia .NET i que en el repositori de projecte existeixin mes de dos .csproj, aquesta propietat project_name és obligatòria.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/library-ci-on-commit-reusable.yaml@v4
secrets: inherit
with:
technology: java
java_version: 21
java_distribution: temurin
maven_version: 3.9.5
# install_build_command: "mvn package -Dmaven.test.skip=true"
CI on PR
-
technology: (opcional) Tecnologia del projecte. Valors possibles:
java
java-maven
nodejs
dotnet
IMPORTANT .Net Framework no està suportatjava-gradle
-
java_version: (opcional) Versió de Java. Definir només si el projecte es basa en tecnologia Java.
-
java_distribution: (opcional) Distribució de Java. Definir només si el projecte es basa en tecnologia Java.
-
maven_version: (opcional) Versió de Maven. Definir només si el projecte es basa en tecnologia Java.
-
sonar_exclusions: (opcional) Exclusió de Sonar, pot estar buit.
-
node_version: (opcional) Versió de Node. Definir només si el projecte es basa en tecnologia Node.
-
dotnet_version: (opcional) Versió de .Net. Definir només si el projecte es basa en tecnologia .Net.
-
gradle_version: (opcional) Versió de gradle. Definir només si el projecte es basa en tecnologia python.
-
sonar_exclusions: (opcional) Exclusió de Sonar. Exemples:
node_modules/**
test/**
-
sonarqube: (opcional) Indica si s’ha d’executar l’anàlisi de codi mitjançant SonarQube. Valor per defecte: true.
-
dependabot: (opcional) Indica si s’ha de permetre l’ús de Dependabot. Valor per defecte: true.
-
unit_test: (opcional) Realització de proves unitàries. Valor per defecte: false.
-
project_name: (opcional) Nom del projecte, especificar només si no hi ha compilació en el projecte. En el cas de projectes amb tecnologia .NET i que en el repositori de projecte existeixin mes de dos .csproj, aquesta propietat project_name és obligatòria.
-
install_build_command: (opcional) Comanda personalitzada per construir i empaquetar el projecte. El valor per defecte per a nodejs és
"npm ci"
, per a java maven"mvn clean compile"
, per a java gradle"gradle clean build"
, per a dotnet"dotnet build $PROJECT_PATH -c Release"
. Si no es proporciona cap comanda personalitzada, es farà servir la comanda per defecte segons la tecnologia especificada. -
custom_test_command:(opcional) Comanda personalitzada per realitzar les proves al projecte. Els valors per defecte són els següents segons la tecnologia:
- java/java-maven:
"mvn surefire:test"
- java-gradle:
"gradle test"
- nodejs:
"npm test"
- dotnet:
"dotnet test $TEST_PROJECT_PATH --configuration Release"
- java/java-maven:
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/library-ci-on-pr-reusable.yaml@v4
secrets: inherit
with:
technology: java
java_version: 21
java_distribution: temurin
maven_version: 3.9.5
Desplegaments estesos
Executor CD
- executor_image_version: (obligatori) Versió d’imatge del executor.
- technology: Tecnologia. Valors possibles:
liquibase
psql
sqlcmd
kubectl
helm
- environment: (obligatori) Entorn.
- cloud: (obligatori) Entorn al núvol. Valors possibles:
aws
azure
gcp
- engine: (obligatori) Plataforma de desplegament. Valors possibles:
kubernetes
database
- registry_name: (obligatori) Nom del registre.
- function_name: (obligatori) Nom de la funció. Definir únicament si el cloud és
AWS
.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/extended-executor-cd-reusable.yaml@v4
secrets: inherit
with:
cloud: aws
engine: database
technology: psql
executor_image_version: ${{ inputs.executor_image_version }}
environment: ${{ inputs.environment }}
registry_name: ${{ inputs.registry_name }}
function_name: ${{ inputs.function_name }}
Descriptors CD
- executor_image_version: (opcional) Versió d’imatge del executor. Definir únicament si el cloud és
azure
. - artifact_version: (obligatori) Versió de l’artefacte.
- technology: (opcional) Technology. Valors possibles:
liquibase
psql
sqlcmd
kubectl
helm
- environment: (obligatori) Entorn.
- cloud: (obligatori) Entorn al núvol. Valors possibles:
aws
azure
gcp
- engine: (obligatori) Plataforma de desplegament. Valors possibles:
kubernetes
database
- storage_name: (obligatori) Nom de l’emmagatzematge.
- blob_name: (opcional) Blob nom. Definir únicament si el cloud és
azure
. - destination_prefix: (opcional) Prefix de destí. Definir si el núvol és AWS i hi ha una subcarpeta dins del bucket de S3.
- exclude: (opcional) Indica els fitxers o directoris que s’han d’excloure durant el procés de càrrega de contingut. Valor per defecte: .git.
- delete: (opcional) Determina si els fitxers que no són presents en la font s’han de suprimir del destí durant el procés de càrrega. Valor per defecte: true.
- descriptor_relative_path: (obligatori) Path relatiu dels descriptors, (fitxer o directori), és a dir: ‘folder/sql.sql’ o ‘folder/subfolder’. El path relatiu ja conté els valors “descriptors/engine/technology/”, per la qual cosa no cal incloure’ls com a input, sinó que cal indicar a partir d’aquí.
- key_vault_name: (opcional) Key Vault nom. Definir únicament si el cloud és
azure
. - connection_secret_name: (opcional) Nom del secret de connexió.
- function_name: (opcional) Nom de la funció. Definir únicament si el cloud és
AWS
. - resource_group: (opcional) Grup de recursos. Definir únicament si el cloud és
azure
. - azure_region: (opcional) Regió Azure. Definir únicament si el cloud és
azure
. - registry_name: (opcional) Nom de l’egistry. Definir únicament si el cloud és
azure
. - vnet_name: (opcional) VNet nom. Definir únicament si el cloud és
azure
. - subnet_name: (opcional) Subnet nom. Definir únicament si el cloud és
azure
. - cluster_name: (opcional) Nom del clúster.
- namespace: (opcional) Nom del namespace dins el clúster.
- database_endpoint: (opcional) URI endpoint de la BBDD.
- database_name: (opcional) Nom de la base de dades.
- database_user:(opcional) Usuari de la BBDD.
- itsm_enabled: (DEPRECATED) Aquest paràmetre està obsolet, i per tant no importa el valor que prengui que no es farà ús d’aquest.
- itsm_id_change_coordinator: (obligatori) ID del coordinador de canvis d’ITSM.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/extended-descriptor-cd-reusable.yaml@v4
secrets: inherit
with:
cloud: aws
engine: database
technology: psql
artifact_version: ${{ inputs.artifact_version }}
environment: ${{ inputs.environment }}
storage_name: "ghec-dev-s3-ew1-ingest-scripts-db-psql"
descriptors_relative_path: ${{ inputs.descriptors_relative_path }}
connection_secret_name: "rds!cluster-e490379f-cfff-4ebb-b083-f723b8fb136e"
function_name: "ghec-dev-lam-ew1-000-psql"
database_endpoint: ${{ inputs.database_endpoint }}
database_name: ${{ inputs.database_name }}
database_user: ${{ inputs.database_user }}
itsm_id_change_coordinator: ${{ inputs.itsm_id_change_coordinator }}
API Manager
CD Publish
- artifact_version: (obligatori) Versió de l’artefacte que es publicarà.
- apicCatalog: (obligatori) Catàleg d’API Connect on es publicarà el producte.Valors possibles:
privat
public
privat-pre
public-pre
- apicProductFile: (obligatori) Fitxer del producte d’API Connect que es publicarà.
- itsm_enabled: (DEPRECATED) Aquest paràmetre està obsolet, i per tant no importa el valor que prengui que no es farà ús d’aquest.
- itsm_id_change_coordinator: (obligatori) ID del coordinador de canvis en el sistema ITSM.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/apim-cd-publish-reusable.yaml@v4
secrets: inherit
with:
artifact_version: ${{ inputs.artifact_version }}
apicCatalog: ${{ inputs.apicCatalog }}
apicProductFile: ${{ inputs.apicProductFile }}
itsm_id_change_coordinator: ${{ inputs.itsm_id_change_coordinator }}
CD Operativa
- operació: (obligatori) Operació a fer amb el producte.
INFO
REPLACE
RETIRE
DELETE
DEPRECATE
SUPERSEDE
- artifact_version: (obligatori) Versió de l’artefacte que es publicarà.
- apicCatalog: (obligatori) Catàleg d’API Connect on es farà l’operació.
privat
public
privat-pre
public-pre
- apicProductFile: (obligatori) Fitxer del producte d’API Connect que es farà servir en l’operació.
- apicNewProductVersion: (obligatori en operacions de Replace i Supersede) Nova versió del producte d’API Connect que es farà servir en l’operació.
- itsm_enabled: (DEPRECATED) Aquest paràmetre està obsolet, i per tant no importa el valor que prengui que no es farà ús d’aquest.
- itsm_id_change_coordinator: (obligatori) ID del coordinador de canvis en el sistema ITSM.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/apim-cd-operativa-reusable.yaml@v4
secrets: inherit
with:
operation: ${{ inputs.operation }}
artifact_version: ${{ inputs.artifact_version }}
apicCatalog: ${{ inputs.apicCatalog }}
apicProductFile: ${{ inputs.apicProductFile }}
apicNewProductVersion: ${{ inputs.apicNewProductVersion }}
itsm_id_change_coordinator: ${{ inputs.itsm_id_change_coordinator }}
CI on Commit
- apicProductFile: (obligatori) Fitxer del producte d’API Connect que es publicarà.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/apim-ci-on-commit-reusable.yaml@v4
secrets: inherit
with:
apicProductFile: "health-check-test_2.0.7.yaml"
CI on PR
- apicProductFile: (obligatori) Fitxer del producte d’API Connect que es publicarà.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/apim-ci-on-pr-reusable.yaml@v4
secrets: inherit
with:
apicProductFile: "health-check-test_2.0.7.yaml"
Mobile Apps iOS
CD
- project_name: (obligatori) Nom del projecte.
- project_scheme: (obligatori) Nom del scheme del projecte.
- project_target: (obligatori) Nom del target del projecte.
- project_config: (obligatori) Nom de la configuració del projecte.
- xcode_version: (opcional) Versió del Xcode. Valor per defecte: 16.2
- use_private_library: (opcional) Per habilitar o deshabilitar l’ús de llibreries propies. Valor per defecte: false
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows-mobile/.github/workflows/apps-mobils-ios-cd-reusable.yml@v1
secrets: inherit
with:
project_name: "<project_name>"
project_scheme: ${{ inputs.project_scheme }}
project_target: ${{ inputs.project_target }}
project_config: ${{ inputs.project_config }}
CI on PR
- project_name: (obligatori) Nom del projecte.
- project_scheme: (obligatori) Nom del scheme del projecte.
- project_target: (obligatori) Nom del target del projecte.
- project_config: (obligatori) Nom de la configuració del projecte.
- xcode_version: (opcional) Versió del Xcode. Valor per defecte: 16.2
- use_private_library: (opcional) Per habilitar o deshabilitar l’ús de llibreries propies. Valor per defecte: false
- unit_test: (opcional) Per habilitar o deshabilitar l’execució de Unit Testing. Valor per defecte: true
- unit_test_os_version: (opcional) OS a utilizar al simulador per executar Unit Testing. Valor per defecte: 18.1
- unit_test_device_model: (opcional) Nom del dispositiu a utilizar al simulador per executar Unit Testing. Valor per defecte: iPhone 16
- unit_test_testplan: (opcional) Nom del test plan per executar Unit Testing.
- lint: (opcional) Per habilitar o deshabilitar l’execució de SwiftLint. Valor per defecte: true
- dependabot: (opcional) Per habilitar o deshabilitar l’execució de Dependabot. Valor per defecte: true
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows-mobile/.github/workflows/apps-mobils-ios-ci-on-pr-reusable.yml@v1
secrets: inherit
with:
project_name: "<project_name>"
project_scheme: "<project_scheme>"
project_target: "<project_target>"
project_config: "<project_config>"
Mobile Apps Android
CD
- project_name: (obligatori) Nom del projecte.
- flavour: (opcional) Nom del flavour del projecte. Valor per defecte: pro
- build_type: (obligatori) Nom del build type del projecte.
- java_version: (obligatori) Versió de Java.
- group_id: (obligatori) Group Id del projecte.
- gradle_version: (opcional) Versió de Gradle.
- auto_upload_playstore: (opcional) Desactivar la distribució automàtica al Google Play Store del entorn.
- binary_type: (opcional) Tipus de binari a generar i signar. Valor per defecte: ‘aab’
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows-mobile/.github/workflows/apps-mobils-android-cd-reusable.yml@v1
secrets: inherit
with:
project_name: "<project_name>"
java_version: "<java_version>"
group_id: "<group_id>"
flavour: ${{ inputs.flavour }}
build_type: ${{ inputs.build_type }}
gradle_version: "<gradle_version>"
CI on PR
- project_name: (obligatori) Nom del projecte.
- flavour: (opcional) Nom del flavour del projecte. Valor per defecte: pro
- build_type: (obligatori) Nom del build type del projecte.
- java_version: (obligatori) Versió de Java.
- gradle_version: (opcional) Versió de Gradle.
- unit_test: (opcional) Per habilitar o deshabilitar l’execució de Unit Testing. Valor per defecte: true
- sonarqube: (opcional) Utilització de SonarQube. Valor per defecte: true.
- sonar_exclusions: (opcional) Exclusió de Sonar, pot estar buit.
- lint: (opcional) Per habilitar o deshabilitar l’execució de Lint. Valor per defecte: true
- dependabot: (opcional) Per habilitar o deshabilitar l’execució de Dependabot. Valor per defecte: true
- group_id: (obligatori) Group Id del projecte.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows-mobile/.github/workflows/apps-mobils-ios-ci-on-pr-reusable.yml@v1
secrets: inherit
with:
project_name: "<project_name>"
java_version: "<java_version>"
group_id: "<group_id>"
flavour: ${{ inputs.flavour }}
build_type: ${{ inputs.build_type }}
gradle_version: "<gradle_version>"
Mobile Library iOS
CI on commit develop
- library_scheme_name: (obligatori) Nom del scheme del projecte.
- xcode_version: (opcional) Versió del Xcode. Valor per defecte: 16.2
- use_private_library: (opcional) Per habilitar o deshabilitar l’ús de llibreries propies. Valor per defecte: false
- dependabot: (opcional) Per habilitar o deshabilitar l’execució de Dependabot. Valor per defecte: true
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows-mobile/.github/workflows/library-mobils-ios-ci-on-commit-develop-reusable.yml@v1
secrets: inherit
with:
library_scheme_name: "<library_schem_name>"
CI on commit
- library_scheme_name: (obligatori) Nom del scheme del projecte.
- xcode_version: (opcional) Versió del Xcode. Valor per defecte: 16.2
- use_private_library: (opcional) Per habilitar o deshabilitar l’ús de llibreries propies. Valor per defecte: false
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows-mobile/.github/workflows/library-mobils-ios-ci-on-commit-reusable.yml@v1
secrets: inherit
with:
library_scheme_name: "<library_schem_name>"
CI on PR
- library_scheme_name: (obligatori) Nom del scheme del projecte.
- xcode_version: (opcional) Versió del Xcode. Valor per defecte: 16.2
- use_private_library: (opcional) Per habilitar o deshabilitar l’ús de llibreries propies. Valor per defecte: false
- unit_test: (opcional) Per habilitar o deshabilitar l’execució de Unit Testing. Valor per defecte: true
- unit_test_os_version: (opcional) OS a utilizar al simulador per executar Unit Testing. Valor per defecte: 18.1
- unit_test_device_model: (opcional) Nom del dispositiu a utilizar al simulador per executar Unit Testing. Valor per defecte: iPhone 16
- unit_test_scheme_name: (opcional) Nom del scheme de test del projecte per executar Unit Testing.
- lint: (opcional) Per habilitar o deshabilitar l’execució de SwiftLint. Valor per defecte: true
- dependabot: (opcional) Per habilitar o deshabilitar l’execució de Dependabot. Valor per defecte: true
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows-mobile/.github/workflows/library-mobils-ios-ci-on-pr-reusable.yml@v1
secrets: inherit
with:
library_scheme_name: "<library_schem_name>"
unit_test_scheme_name: "<unit_test_scheme_name>"
Databricks
CD
- technology: (obligatori) Tecnologia del projecte. Valors possibles:
databricks
- artifact_version: (obligatori) Versió de l’artefacte.
- environment: (obligatori) Entorn.
- bundle_target_list: (opcional) Llistat de bundle targets a desplegar.
- runner_type: (obligatori) Tipus de runner. Valors possibles:
- ‘{“group”: “databricks”, “labels”: [“self-hosted”, “databricks”]}’
- ‘[“ubuntu-22.04”]’
- ‘[“ubuntu-24.04”]’
- itsm_enabled: (DEPRECATED) Aquest paràmetre està obsolet, i per tant no importa el valor que prengui que no es farà ús d’aquest.
- itsm_id_change_coordinator: (obligatori) ID del coordinador de canvis de l’ITSM.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/databricks-cd-reusable.yaml@v4
secrets: inherit
with:
technology: databricks
artifact_version: ${{ inputs.artifact_version }}
environment: ${{ inputs.environment }}
runner_type: ${{ inputs.runner_type }}
itsm_id_change_coordinator: ${{ inputs.itsm_id_change_coordinator }}
CI on commit
- technology: (obligatori) Tecnologia del projecte. Valors possibles:
databricks
- sonar_exclusions: (opcional) Exclusió de Sonar. Exemples:
node_modules/**
test/**
- sonarqube: (opcional) Indica si s’ha d’executar l’anàlisi de codi mitjançant SonarQube. Valor per defecte: false.
- dependabot: (opcional) Indica si s’ha de permetre l’ús de Dependabot. Valor per defecte: false.
- get_project_name_command: (opcional) Comanda per a obtenir el nom del projecte del fitxer descriptor. Si s’informa, també serà requerit informar el paràmetre “get_version_command”.
- get_version_command: (opcional) Comanda per obtenir la versió de l’artefacte de l’artefacte del fitxer descriptor. Si s’informa, també serà requerit informar el paràmetre “get_project_name_command”.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/databricks-ci-on-commit-reusable.yaml@v4
secrets: inherit
with:
technology: databricks
sonar_exclusions: "test/**"
# get_project_name_command: "yq eval '.bundle.name' '${{ github.workspace }}/databricks.yml'"
# get_version_command: "grep '__version__' ${sourceProjectPath}/__init__.py | cut -d '"' -f 2"
CI on PR
- technology: (obligatori) Tecnologia del projecte. Valors possibles:
databricks
- runner_type: (obligatori) Tipus de runner. Valors possibles:
- ‘{“group”: “databricks”, “labels”: [“self-hosted”, “databricks”]}’
- ‘[“ubuntu-22.04”]’
- ‘[“ubuntu-24.04”]’
- sonar_exclusions: (opcional) Exclusió de Sonar. Exemples:
test/**
- unit_test: (opcional) Indica si s’han d’executar proves unitàries com a part del flux de treball d’integració contínua. Valor per defecte: false.
- sonarqube: (opcional) Habilita la integració amb SonarQube. Valor per defecte: true.
- dependabot: (opcional) Activa o desactiva l’ús de Dependabot Valor per defecte: true.
- custom_test_command:(opcional) Comanda personalitzada per realitzar les proves al projecte. Els valors per defecte són els següents segons la tecnologia:
- get_project_name_command: (opcional) Comanda per a obtenir el nom del projecte del fitxer descriptor. Si s’informa, també serà requerit informar el paràmetre “get_version_command”.
- get_version_command: (opcional) Comanda per obtenir la versió de l’artefacte de l’artefacte del fitxer descriptor. Si s’informa, també serà requerit informar el paràmetre “get_project_name_command”.
- multi_target: (opcional) Deshabilita la validacion del bundle i OPA Policies. Valor per defecte: false.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/databricks-ci-on-pr-reusable.yaml@v4
secrets: inherit
with:
technology: databricks
runner_type: '{"group": "databricks", "labels": ["self-hosted", "databricks"]}'
sonar_exclusions: "test/**"
# custom_test_command: ""
# get_project_name_command: "yq eval '.bundle.name' '${{ github.workspace }}/databricks.yml'"
# get_version_command: "grep '__version__' ${sourceProjectPath}/__init__.py | cut -d '"' -f 2"
Datafactory
CD
- technology: (obligatori) Tecnologia del projecte. Valors possibles:
datafactory
- artifact_version: (obligatori) Versió de l’artefacte.
- environment: (obligatori) Entorn.
- project_name: (obligatori) Nombre del projecte.
- azure_resource_group: (obligatori) Nom del grup de recursos d’Azure.
- azure_datafactory_name: (obligatori) Nom d´Azure Data Factory.
- itsm_enabled: (DEPRECATED) Aquest paràmetre està obsolet, i per tant no importa el valor que prengui que no es farà ús d’aquest.
- itsm_id_change_coordinator: (obligatori) ID del coordinador de canvis de l’ITSM.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/datafactory-cd-reusable.yaml@v4
secrets: inherit
with:
technology: datafactory
artifact_version: ${{ inputs.artifact_version }}
environment: ${{ inputs.environment }}
project_name: ${{ inputs.project_name }}
azure_resource_group: ${{ inputs.azure_resource_group }}
azure_datafactory_name: ${{ inputs.azure_datafactory_name }}
itsm_id_change_coordinator: ${{ inputs.itsm_id_change_coordinator }}
CI on commit to Release or Master
- technology: (obligatori) Tecnologia del projecte. Valors possibles:
datafactory
- project_name: (obligatori) Nombre del projecte.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/datafactory-ci-on-commit-reusable.yaml@v4
secrets: inherit
with:
technology: datafactory
project_name: <project_name>
CI on Commit to adf_publish
- technology: (obligatori) Tecnologia del projecte. Valors possibles:
datafactory
- project_name: (obligatori) Nombre del projecte.
- environment: (opcional) Entorn.
Exemple de crida al workflow:
uses: ctti-arq/reusable-workflows/.github/workflows/datafactory-ci-on-commit-adf-publish-reusable.yaml@v4
secrets: inherit
with:
technology: datafactory
project_name: <project_name>
environment: pre