Commented out dotenv instances #15
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 | |
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 |