Merge branch 'main' into prod #78
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/CD parking-offstreet-meranobolzano | |
on: | |
push: | |
paths: | |
- "data-collectors/parking-offstreet-meranobolzano/**" | |
- ".github/workflows/ci-parking-offstreet-meranobolzano.yml" | |
env: | |
WORKING_DIRECTORY: data-collectors/parking-offstreet-meranobolzano | |
PROJECT_NAME: odh-mobility-dc-parking-offstreet-meranobolzano | |
DOCKER_IMAGE: ghcr.io/${{ github.repository }}/odh-mobility-dc-parking-offstreet-meranobolzano | |
DOCKER_TAG: ${{ github.sha }} | |
JAVA_VERSION: '8' | |
CLIENT_SECRET_BASE64: ${{ secrets.SPREADSHEETS_GOOGLE_CLIENT_SECRET_BASE64 }} | |
STORED_CREDENTIAL_BASE64: ${{ secrets.SPREADSHEETS_GOOGLE_STORED_CREDENTIAL_BASE64 }} | |
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-parking-offstreet-meranobolzano: | |
runs-on: ubuntu-20.04 | |
if: github.ref == 'refs/heads/main' | |
needs: test | |
concurrency: deploy-test-parking-offstreet-meranobolzano | |
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: | |
X_SERVER_PORT: 1008 | |
X_stationtype: ParkingStation | |
X_pbz_origin: FAMAS | |
X_parking_mearno_endpoint: http://84.18.132.129/trafficstudiorestwebservice/getParkingAreasSituation | |
X_pbz_default_server_host: 109.117.22.203 | |
X_pbz_default_server_port: 7075 | |
X_pbz_default_site_name: /RPC2 | |
X_prediction_url_time: http://prod-tomcat-elaborations.cf5sp37dvf.eu-west-1.elasticbeanstalk.com/parking-forecast/predictions?minutes= | |
X_prediction_url_station: http://prod-tomcat-elaborations.cf5sp37dvf.eu-west-1.elasticbeanstalk.com/parking-forecast/lotprediction?pid= | |
X_parking_url_stations: http://ipchannels.integreen-life.bz.it/parkingFrontEnd/rest/get-stations | |
# 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 | |
# Google sheet enriched metadata fields | |
X_SPREADSHEET_ID: 1QMe22_3GrhErkqRY7m7ZKr19YbD1HZ5ZWuB-G3n0KoY | |
X_SPREADSHEET_RANGE: A1:Z255 | |
X_SPREADSHEET_NAME: MeranoBolzano | |
# Logging | |
X_LOG_LEVEL: info | |
X_LOG_STYLE: json | |
X_provenance_name: ${{ env.PROJECT_NAME }} | |
X_provenance_version: ${{ github.sha }} | |
# Scheduler | |
X_SCHEDULER_CRON_STATIONS: 0 0 */1 * * * | |
X_SCHEDULER_CRON_SLOTS: 10 */5 * * * * | |
X_SCHEDULER_CRON_TYPES: 0 0 0 * * * | |
X_SCHEDULER_POOL_SIZE: 10 | |
- name: Retrieve secret files and decode it to a file | |
run: | | |
echo $CLIENT_SECRET_BASE64 | base64 --decode > $WORKING_DIRECTORY/src/main/resources/META-INF/spring/client_secret.json | |
echo $STORED_CREDENTIAL_BASE64 | base64 --decode > $WORKING_DIRECTORY/src/main/resources/META-INF/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-parking-offstreet-meranobolzano: | |
runs-on: ubuntu-20.04 | |
if: github.ref == 'refs/heads/prod' | |
needs: test | |
concurrency: deploy-prod-parking-offstreet-meranobolzano | |
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: | |
X_SERVER_PORT: 1008 | |
X_stationtype: ParkingStation | |
X_pbz_origin: FAMAS | |
X_parking_mearno_endpoint: http://84.18.132.129/trafficstudiorestwebservice/getParkingAreasSituation | |
X_pbz_default_server_host: 109.117.22.203 | |
X_pbz_default_server_port: 7075 | |
X_pbz_default_site_name: /RPC2 | |
X_prediction_url_time: http://prod-tomcat-elaborations.cf5sp37dvf.eu-west-1.elasticbeanstalk.com/parking-forecast/predictions?minutes= | |
X_prediction_url_station: http://prod-tomcat-elaborations.cf5sp37dvf.eu-west-1.elasticbeanstalk.com/parking-forecast/lotprediction?pid= | |
X_parking_url_stations: http://ipchannels.integreen-life.bz.it/parkingFrontEnd/rest/get-stations | |
# 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 | |
# Google sheet enriched metadata fields | |
X_SPREADSHEET_ID: 1pv5MJyITBb8TOeBTiMIZVDeeC2OM79ksc379bonAjwY | |
X_SPREADSHEET_RANGE: A1:Z255 | |
X_SPREADSHEET_NAME: MeranoBolzano | |
# Logging | |
X_LOG_LEVEL: "info" | |
X_LOG_STYLE: json | |
X_provenance_name: ${{ env.PROJECT_NAME }} | |
X_provenance_version: ${{ github.sha }} | |
# Scheduler | |
X_SCHEDULER_CRON_STATIONS: 0 0 */1 * * * | |
X_SCHEDULER_CRON_SLOTS: 10 */5 * * * * | |
X_SCHEDULER_CRON_TYPES: 0 0 0 * * * | |
X_SCHEDULER_POOL_SIZE: 10 | |
- name: Retrieve secret files and decode it to a file | |
run: | | |
echo $CLIENT_SECRET_BASE64 | base64 --decode > $WORKING_DIRECTORY/src/main/resources/META-INF/spring/client_secret.json | |
echo $STORED_CREDENTIAL_BASE64 | base64 --decode > $WORKING_DIRECTORY/src/main/resources/META-INF/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 }} | |