Updated the pipeline.yml file #3
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: | |
- main | |
- test-ci-cd-workflow | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
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: Install PostgreSQL Client | |
run: sudo apt-get install -y postgresql-client | |
- name: Retrieve secrets from 1Password | |
id: load-secrets | |
uses: 1Password/load-secrets-action@v1 | |
with: | |
export-env: false | |
env: | |
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} | |
- name: Set environment variables | |
run: | | |
echo "OP_EMAIL=$(op read op://Shared/OP_EMAIL)" >> $GITHUB_ENV | |
echo "OP_SECRET_KEY=$(op read op://Shared/OP_SECRET_KEY)" >> $GITHUB_ENV | |
echo "DB_HOST=$(op read op://Shared/DB_HOST)" >> $GITHUB_ENV | |
echo "DATABASE_USERNAME=$(op read op://Shared/DATABASE_USERNAME)" >> $GITHUB_ENV | |
echo "DATABASE_PASSWORD=$(op read op://Shared/DATABASE_PASSWORD)" >> $GITHUB_ENV | |
- name: Authenticate with 1Password | |
run: | | |
eval $(op account add --address https://team-deloittedigital.1password.com --email $OP_EMAIL --secret-key $OP_SECRET_KEY --signin) | |
eval $(op signin my) | |
- name: Wait for Postgres | |
run: | | |
until pg_isready -h $DB_HOST -p 5432 -U $DATABASE_USERNAME; do | |
echo waiting for postgres; | |
sleep 2; | |
done | |
- name: Build with Maven | |
env: | |
DB_HOST: ${{ secrets.DB_HOST }} | |
DB_PORT: ${{ secrets.DB_PORT }} | |
DB_NAME: ${{ secrets.DB_NAME }} | |
DB_USER: ${{ secrets.DB_USER }} | |
DB_PASSWORD: ${{ secrets.DB_PASSWORD }} | |
DATABASE_URL: ${{ secrets.DATABASE_URL }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_REGION: ${{ secrets.AWS_REGION }} | |
AWS_S3_BUCKET_NAME: ${{ secrets.AWS_S3_BUCKET_NAME }} | |
run: mvn clean package | |
- name: Run tests | |
env: | |
DB_HOST: ${{ secrets.DB_HOST }} | |
DB_PORT: ${{ secrets.DB_PORT }} | |
DB_NAME: ${{ secrets.DB_NAME }} | |
DB_USER: ${{ secrets.DB_USER }} | |
DB_PASSWORD: ${{ secrets.DB_PASSWORD }} | |
DATABASE_URL: ${{ secrets.DATABASE_URL }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_REGION: ${{ secrets.AWS_REGION }} | |
AWS_S3_BUCKET_NAME: ${{ secrets.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 |