Refactored workflow yaml file #33
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 | |
on: | |
push: | |
branches: | |
- main | |
- test-ci-cd-workflow | |
pull_request: | |
branches: | |
- main | |
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: | |
distribution: 'adopt' | |
java-version: '17' | |
- name: Install Maven | |
run: sudo apt-get install -y maven | |
- name: Install dependencies | |
run: mvn install -DskipTests | |
- name: Set up Chromedriver | |
run: | | |
sudo apt-get install -y wget unzip | |
wget https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip | |
unzip chromedriver_linux64.zip | |
sudo mv chromedriver /usr/local/bin/ | |
sudo chmod +x /usr/local/bin/chromedriver | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Build and push | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: ./Dockerfile | |
push: true | |
tags: mhk1/acebook_penguins:latest | |
- name: Run Docker container | |
run: | | |
docker run -d --name acebook_penguins -p 5432:5432 -p 8080:8080 mhk1/acebook_penguins:latest | |
sleep 30 | |
- name: Run unit tests | |
run: mvn test -Dtest=PostTest | |
- name: Health check | |
run: | | |
echo "Waiting for the application to start..." | |
sleep 30 | |
curl -f http://localhost:8080 || exit 1 | |
- name: Stop Docker container | |
run: docker stop acebook_penguins | |
- name: Remove Docker container | |
run: docker rm acebook_penguins |