Skip to content

Merge branch 'main' into prod #64

Merge branch 'main' into prod

Merge branch 'main' into prod #64

name: CI/CD spreadsheets-google-sta-echarging
on:
push:
paths:
- "data-collectors/spreadsheets-google/**"
- ".github/workflows/ci-spreadsheets-google-sta-echarging.yml"
env:
WORKING_DIRECTORY: data-collectors/spreadsheets-google
PROJECT_NAME: odh-mobility-dc-spreadsheets-google-sta-echarging
DOCKER_IMAGE: ghcr.io/${{ github.repository }}/odh-mobility-dc-spreadsheets-google-sta-echarging
DOCKER_TAG: ${{ github.sha }}
JAVA_VERSION: '8'
SERVER_PORT: 1020
VENDOR: STA
CLIENT_SECRET_BASE64: ${{ secrets.SPREADSHEETS_GOOGLE_CLIENT_SECRET_BASE64 }}
STORED_CREDENTIAL_BASE64: ${{ secrets.SPREADSHEETS_GOOGLE_STORED_CREDENTIAL_BASE64 }}
SPREADSHEET_ID: ${{ secrets.SPREADSHEETS_GOOGLE_STA_ECHARGING_SPREADSHEET_ID }}
jobs:
test:
runs-on: ubuntu-20.04
steps:
- name: Checkout source code
uses: noi-techpark/github-actions/checkout@v2
- name: REUSE Compliance Check
uses: fsfe/reuse-action@v1
- name: Test code
uses: noi-techpark/github-actions/maven-test@v2
with:
java-version: ${{ env.JAVA_VERSION }}
working-directory: ${{ env.WORKING_DIRECTORY }}
test-command: 'mvn -B -U clean compile test'
# Deploy Test
# deploy-test-spreadsheets-google:
# runs-on: ubuntu-20.04
# if: github.ref == 'refs/heads/main'
# needs: test
# concurrency: deploy-test-spreadsheets-google-sta-echarging
# env:
# KEYCLOAK_URL: https://auth.opendatahub.testingmachine.eu
# steps:
# - name: Checkout source code
# uses: noi-techpark/github-actions/checkout@v2
# - name: Create .env file
# uses: noi-techpark/github-actions/env-file@v2
# with:
# working-directory: ${{ env.WORKING_DIRECTORY }}
# env:
# # Data Collector config
# X_SERVER_PORT: ${{ env.SERVER_PORT }}
# X_VENDOR: ${{ env.VENDOR }}
# X_spreadsheetId: ${{ env.SPREADSHEET_ID }}
# X_spreadsheet_notificationUrl: https://spreadsheets.testingmachine.eu/sta-echarging/trigger
# X_origin: STA
# # configure main collector class. Omitting this value defaults to DefaultCollector
# X_collectorClass: it.bz.odh.spreadsheets.StaEchargingCollector
# X_suportedLanguages: en,it,de
# X_stationtype: EChargingStation
# X_spreadsheet_range: A1:Z
# X_googleAuthClient_secret_location: file:/credentials/client_secret.json
# X_googleAuthCredentials_folder: file:/credentials
# # General deployment options
# X_COMPOSE_PROJECT_NAME: ${{ env.PROJECT_NAME }}
# X_DOCKER_IMAGE: ${{ env.DOCKER_IMAGE }}
# X_DOCKER_TAG: ${{ env.DOCKER_TAG }}
# X_JAVA_OPTIONS: -Xms128m -Xmx512m
# # Open Data Hub Writer Connectivity
# X_authorizationUri: ${{ env.KEYCLOAK_URL }}/auth
# X_tokenUri: ${{ env.KEYCLOAK_URL }}/auth/realms/noi/protocol/openid-connect/token
# X_clientId: odh-mobility-datacollector
# X_clientName: odh-mobility-datacollector
# X_clientSecret: ${{ secrets.DATACOLLECTORS_CLIENT_SECRET_TEST }}
# X_scope: openid
# X_BASE_URI: https://mobility.share.opendatahub.testingmachine.eu/json
# # Logging
# X_LOG_LEVEL: info
# X_LOG_STYLE: json
# X_LOG_FOLDER: data-collectors/${{ env.PROJECT_NAME }}
# X_provenance_name: ${{ env.PROJECT_NAME }}
# X_provenance_version: ${{ github.sha }}
# - name: Retrieve secret files and decode it to a file
# run: |
# echo $CLIENT_SECRET_BASE64 | base64 --decode > data-collectors/spreadsheets-google/credentials/client_secret.json
# echo $STORED_CREDENTIAL_BASE64 | base64 --decode > data-collectors/spreadsheets-google/credentials/StoredCredential
# - name: Build project
# uses: noi-techpark/github-actions/maven-build@v2
# with:
# working-directory: ${{ env.WORKING_DIRECTORY }}
# java-version: ${{ env.JAVA_VERSION }}
# build-command: 'mvn -B -DskipTests -DfinalName=ROOT clean package'
# - name: Build and push images
# uses: noi-techpark/github-actions/docker-build-and-push@v2
# with:
# working-directory: ${{ env.WORKING_DIRECTORY }}/infrastructure
# docker-username: ${{ github.actor }}
# docker-password: ${{ secrets.GITHUB_TOKEN }}
# - name: Deploy application
# uses: noi-techpark/github-actions/docker-deploy@v2
# with:
# working-directory: ${{ env.WORKING_DIRECTORY }}/infrastructure/ansible
# hosts: 'test'
# ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
# docker-username: 'noi-techpark-bot'
# docker-password: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
# project-name: ${{ env.PROJECT_NAME }}
# Deploy Production
deploy-prod-spreadsheets-google:
runs-on: ubuntu-20.04
if: github.ref == 'refs/heads/prod'
needs: test
concurrency: deploy-prod-spreadsheets-google-sta-echarging
env:
KEYCLOAK_URL: https://auth.opendatahub.com
steps:
- name: Checkout source code
uses: noi-techpark/github-actions/checkout@v2
- name: Create .env file
uses: noi-techpark/github-actions/env-file@v2
with:
working-directory: ${{ env.WORKING_DIRECTORY }}
env:
# Data Collector config
X_SERVER_PORT: ${{ env.SERVER_PORT }}
X_VENDOR: ${{ env.VENDOR }}
X_spreadsheetId: ${{ env.SPREADSHEET_ID }}
X_spreadsheet_notificationUrl: https://spreadsheets.opendatahub.com/sta-echarging/trigger
X_origin: STA
# configure main collector class. Omitting this value defaults to DefaultCollector
X_collectorClass: it.bz.odh.spreadsheets.StaEchargingCollector
X_suportedLanguages: en,it,de
X_stationtype: EChargingStation
X_spreadsheet_range: A1:Z
X_googleAuthClient_secret_location: file:/credentials/client_secret.json
X_googleAuthCredentials_folder: file:/credentials
# General deployment options
X_COMPOSE_PROJECT_NAME: ${{ env.PROJECT_NAME }}
X_DOCKER_IMAGE: ${{ env.DOCKER_IMAGE }}
X_DOCKER_TAG: ${{ env.DOCKER_TAG }}
X_JAVA_OPTIONS: -Xms128m -Xmx512m
# Open Data Hub Writer Connectivity
X_authorizationUri: ${{ env.KEYCLOAK_URL }}/auth
X_tokenUri: ${{ env.KEYCLOAK_URL }}/auth/realms/noi/protocol/openid-connect/token
X_clientId: odh-mobility-datacollector
X_clientName: odh-mobility-datacollector
X_clientSecret: ${{ secrets.DATACOLLECTORS_CLIENT_SECRET_PROD }}
X_scope: openid
X_BASE_URI: https://mobility.share.opendatahub.com/json
# Logging
X_LOG_LEVEL: info
X_LOG_STYLE: json
X_LOG_FOLDER: data-collectors/${{ env.PROJECT_NAME }}
X_provenance_name: ${{ env.PROJECT_NAME }}
X_provenance_version: ${{ github.sha }}
- name: Retrieve secret files and decode it to a file
run: |
echo $CLIENT_SECRET_BASE64 | base64 --decode > data-collectors/spreadsheets-google/credentials/client_secret.json
echo $STORED_CREDENTIAL_BASE64 | base64 --decode > data-collectors/spreadsheets-google/credentials/StoredCredential
- name: Build project
uses: noi-techpark/github-actions/maven-build@v2
with:
working-directory: ${{ env.WORKING_DIRECTORY }}
java-version: ${{ env.JAVA_VERSION }}
build-command: 'mvn -B -DskipTests -DfinalName=ROOT clean package'
- name: Build and push images
uses: noi-techpark/github-actions/docker-build-and-push@v2
with:
working-directory: ${{ env.WORKING_DIRECTORY }}/infrastructure
docker-username: ${{ github.actor }}
docker-password: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy application
uses: noi-techpark/github-actions/docker-deploy@v2
with:
working-directory: ${{ env.WORKING_DIRECTORY }}/infrastructure/ansible
hosts: 'prod'
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
docker-username: 'noi-techpark-bot'
docker-password: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
project-name: ${{ env.PROJECT_NAME }}