Skip to content

ci/cd: use escapded single quotes for trusted user/password #47

ci/cd: use escapded single quotes for trusted user/password

ci/cd: use escapded single quotes for trusted user/password #47

Workflow file for this run

name: CI/CD
on: push
env:
PROJECT_NAME: beacon-api
DOCKER_IMAGE: ghcr.io/${{ github.repository }}
DOCKER_TAG: ${{ github.sha }}
JAVA_VERSION: '8'
jobs:
test:
runs-on: ubuntu-20.04
steps:
- uses: 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 }}
test-command: 'mvn -B -U clean test verify'
# Deploy Test
deploy-test:
runs-on: ubuntu-20.04
if: github.ref == 'refs/heads/main'
needs: test
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Create .env file
uses: noi-techpark/github-actions/env-file@v2
env:
# 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 -Xmx4096m
X_DB_URL: "jdbc:postgresql://test-pg-bdp.co90ybcr8iim.eu-west-1.rds.amazonaws.com:5432/beacon"
X_DB_USERNAME: ${{ secrets.DB_USERNAME_TEST }}
X_DB_PASSWORD: ${{ secrets.DB_PASSWORD_TEST }}
X_JWT_SECRET: ${{ secrets.JWT_SECRET_TEST }}
X_JWT_EXPIRE_LENGTH: "3600000"
X_UPLOAD_DIR: "/data/beacon-api"
X_CORS_ORIGINS: "*"
X_INFO_HOST: "api.beacon.testingmachine.eu"
X_INFO_TITLE: "Beacon Suedtirol API"
X_INFO_DESCRIPTION: "The API for the Beacon Suedtirol project for configuring beacons and accessing beacon data."
X_INFO_VERSION: "0.1"
X_INFO_TERMS_OF_SERVICE_URL: "https://opendatahub.readthedocs.io/en/latest/licenses.html"
X_INFO_CONTACT_NAME: "NOI S.p.A."
X_INFO_CONTACT_URL: "https://beacon.bz.it/"
X_INFO_CONTACT_EMAIL: "[email protected]"
X_INFO_LICENSE: "AGPL-3.0-or-later"
X_INFO_LICENSE_URL: "https://github.com/noi-techpark/beacon-suedtirol-api/blob/main/LICENSE"
X_ISSUE_EMAIL_FROM: "[email protected]"
X_ISSUE_EMAIL_TO: "[email protected]"
X_MAIL_HOST: "email-smtp.eu-west-1.amazonaws.com"
X_MAIL_PORT: "587"
X_MAIL_USERNAME: ${{ secrets.MAIL_USERNAME_TEST }}
X_MAIL_PASSWORD: ${{ secrets.MAIL_PASSWORD_TEST }}
X_MAIL_SMTP_AUTH: "true"
X_MAIL_SMTP_STARTTLS: "true"
X_BEACON_TRUSTED_USERNAME: \'${{ secrets.BEACON_TRUSTED_USERNAME_TEST }}\'
X_BEACON_TRUSTED_PASSWORD: \'${{ secrets.BEACON_TRUSTED_PASSWORD_TEST }}\'
X_BEACON_PASSWORD_RESET_URL: "https://admin.beacon.testingmachine.eu/"
X_BEACON_PASSWORD_RESET_MAIL: "[email protected]"
X_SERVER_PORT: 1090
- name: Build project
uses: noi-techpark/github-actions/maven-build@v2
with:
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:
docker-username: ${{ github.actor }}
docker-password: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy application
uses: noi-techpark/github-actions/docker-deploy@v2
with:
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:
runs-on: ubuntu-20.04
if: github.ref == 'refs/heads/prod'
needs: test
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Create .env file
uses: noi-techpark/github-actions/env-file@v2
env:
# 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 -Xmx4096m
X_DB_URL: "jdbc:postgresql://postgres-prod.co90ybcr8iim.eu-west-1.rds.amazonaws.com:5432/beacon"
X_DB_USERNAME: ${{ secrets.DB_USERNAME_PROD }}
X_DB_PASSWORD: ${{ secrets.DB_PASSWORD_PROD }}
X_JWT_SECRET: ${{ secrets.JWT_SECRET_PROD }}
X_JWT_EXPIRE_LENGTH: "3600000"
X_UPLOAD_DIR: "/data/beacon-api"
X_CORS_ORIGINS: "*"
X_INFO_HOST: "api.beacon.bz.it"
X_INFO_TITLE: "Beacon Suedtirol API"
X_INFO_DESCRIPTION: "The API for the Beacon Suedtirol project for configuring beacons and accessing beacon data."
X_INFO_VERSION: "0.1"
X_INFO_TERMS_OF_SERVICE_URL: "https://opendatahub.readthedocs.io/en/latest/licenses.html"
X_INFO_CONTACT_NAME: "NOI S.p.A."
X_INFO_CONTACT_URL: "https://beacon.bz.it/"
X_INFO_CONTACT_EMAIL: "[email protected]"
X_INFO_LICENSE: "AGPL-3.0-or-later"
X_INFO_LICENSE_URL: "https://github.com/noi-techpark/beacon-suedtirol-api/blob/prod/LICENSE"
X_ISSUE_EMAIL_FROM: "[email protected]"
X_ISSUE_EMAIL_TO: "[email protected]"
X_MAIL_HOST: "email-smtp.eu-west-1.amazonaws.com"
X_MAIL_PORT: "587"
X_MAIL_USERNAME: ${{ secrets.MAIL_USERNAME_PROD }}
X_MAIL_PASSWORD: ${{ secrets.MAIL_PASSWORD_PROD }}
X_MAIL_SMTP_AUTH: "true"
X_MAIL_SMTP_STARTTLS: "true"
X_BEACON_TRUSTED_USERNAME: '${{ secrets.BEACON_TRUSTED_USERNAME_PROD }}'
X_BEACON_TRUSTED_PASSWORD: '${{ secrets.BEACON_TRUSTED_PASSWORD_PROD }}'
X_BEACON_PASSWORD_RESET_URL: "https://admin.beacon.bz.it/"
X_BEACON_PASSWORD_RESET_MAIL: "[email protected]"
X_SERVER_PORT: 1091
- name: Build project
uses: noi-techpark/github-actions/maven-build@v2
with:
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:
docker-username: ${{ github.actor }}
docker-password: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy application
uses: noi-techpark/github-actions/docker-deploy@v2
with:
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 }}