Skip to content

Added service port

Added service port #17

Workflow file for this run

name: CI/CD
on:
push:
branches:
- test-ci-cd-workflow
jobs:
build:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:latest
ports:
- 5432:5432
env:
POSTGRES_DB: acebook_springboot_development
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd="pg_isready -U postgres -d acebook_springboot_development"
--health-interval=10s
--health-timeout=5s
--health-retries=5
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'adopt'
- name: Download ChromeDriver
run: |
CHROME_DRIVER_VERSION=$(curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE)
wget -N https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo mv -f chromedriver /usr/local/bin/chromedriver
sudo chmod +x /usr/local/bin/chromedriver
- name: Install Google Chrome
run: sudo apt-get install -y google-chrome-stable
- name: Wait for Postgres
run: until pg_isready -h localhost -p 5432 -U postgres; do echo waiting for postgres; sleep 2; done
- name: Retrieve secrets from 1Password
uses: 1Password/actions-ope@v1
with:
op-service-account: ${{ secrets.OP_SERVICE_ACCOUNT }}
vault: 'VaultName'
item: 'EnvironmentVariablesItem'
fields: |
DB_HOST=db_host
DB_PORT=db_port
DB_NAME=db_name
DB_USER=db_user
DB_PASSWORD=db_password
AWS_ACCESS_KEY_ID=aws_access_key_id
AWS_SECRET_ACCESS_KEY=aws_secret_access_key
AWS_REGION=aws_region
AWS_S3_BUCKET_NAME=aws_s3_bucket_name
- name: Build with Maven
env:
DB_HOST: ${{ steps.retrieve-secrets.outputs.db_host }}
DB_PORT: ${{ steps.retrieve-secrets.outputs.db_port }}
DB_NAME: ${{ steps.retrieve-secrets.outputs.db_name }}
DB_USER: ${{ steps.retrieve-secrets.outputs.db_user }}
DB_PASSWORD: ${{ steps.retrieve-secrets.outputs.db_password }}
AWS_ACCESS_KEY_ID: ${{ steps.retrieve-secrets.outputs.aws_access_key_id }}
AWS_SECRET_ACCESS_KEY: ${{ steps.retrieve-secrets.outputs.aws_secret_access_key }}
AWS_REGION: ${{ steps.retrieve-secrets.outputs.aws_region }}
AWS_S3_BUCKET_NAME: ${{ steps.retrieve-secrets.outputs.aws_s3_bucket_name }}
run: mvn clean package
- name: Run tests
env:
DB_HOST: ${{ steps.retrieve-secrets.outputs.db_host }}
DB_PORT: ${{ steps.retrieve-secrets.outputs.db_port }}
DB_NAME: ${{ steps.retrieve-secrets.outputs.db_name }}
DB_USER: ${{ steps.retrieve-secrets.outputs.db_user }}
DB_PASSWORD: ${{ steps.retrieve-secrets.outputs.db_password }}
AWS_ACCESS_KEY_ID: ${{ steps.retrieve-secrets.outputs.aws_access_key_id }}
AWS_SECRET_ACCESS_KEY: ${{ steps.retrieve-secrets.outputs.aws_secret_access_key }}
AWS_REGION: ${{ steps.retrieve-secrets.outputs.aws_region }}
AWS_S3_BUCKET_NAME: ${{ steps.retrieve-secrets.outputs.aws_s3_bucket_name }}
run: mvn test
- name: Build Docker image
run: docker build -t mhk1/acebook_penguins:latest .
- name: Login to Docker Hub
run: echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
- name: Push Docker image
run: docker push mhk1/acebook_penguins:latest