Compare commits

...

6 commits

Author SHA1 Message Date
ybandala
0c957069be pipeline 2025-02-12 01:07:07 -06:00
ybandala
c0921b268a updated pipline 2025-02-12 01:04:19 -06:00
ybandala
ab35eba56e artifactory errors 2025-02-12 00:56:35 -06:00
ybandala
dacdb3b4e3 fixed erros in the build.yml file 2025-02-12 00:49:24 -06:00
ybandala
1150fe7155 fixed error 2025-02-12 00:40:51 -06:00
ybandala
8e6e9f45d9 artifactory update 2025-02-12 00:37:19 -06:00

View file

@ -7,20 +7,16 @@ on:
jobs:
build:
runs-on: self-hosted
runs-on: ubuntu-latest
env:
IMAGE_NAME: petclinic
IMAGE_TAG: ${{ github.sha }}
ARTIFACTORY_URL: petclinicmac.jfrog.io
DOCKER_REPO: petclinic-docker-remote
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: ./mvnw package -B
- name: Setup JFrog CLI
uses: jfrog/setup-jfrog-cli@v3
with:
@ -28,19 +24,27 @@ jobs:
env:
JF_URL: ${{ secrets.JF_URL }}
JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }}
- name: Build and Push Docker Image to Artifactory
- name: Build Docker Image
run: |
# Build the image
docker build -t ${{ secrets.JF_URL }}/docker-local/petclinic:${{ github.sha }} .
docker tag ${{ secrets.JF_URL }}/docker-local/petclinic:${{ github.sha }} ${{ secrets.JF_URL }}/docker-local/petclinic:latest
# Login to Artifactory
echo "${{ secrets.ARTIFACTORY_PASSWORD }}" | docker login ${{ secrets.JF_URL }} -u ${{ secrets.ARTIFACTORY_USERNAME }} --password-stdin
# Push images
docker push ${{ secrets.JF_URL }}/docker-local/petclinic:${{ github.sha }}
docker push ${{ secrets.JF_URL }}/docker-local/petclinic:latest
# Build Docker image
docker build -t "${IMAGE_NAME}:${IMAGE_TAG}" .
# Tag for Artifactory
docker tag "${IMAGE_NAME}:${IMAGE_TAG}" "${ARTIFACTORY_URL}/${DOCKER_REPO}/${IMAGE_NAME}:${IMAGE_TAG}"
docker tag "${IMAGE_NAME}:${IMAGE_TAG}" "${ARTIFACTORY_URL}/${DOCKER_REPO}/${IMAGE_NAME}:latest"
- name: Login to Artifactory
run: |
echo "${{ secrets.ARTIFACTORY_PASSWORD }}" | docker login ${ARTIFACTORY_URL} -u${{ secrets.ARTIFACTORY_USERNAME }} --password-stdin
- name: Push Image to Artifactory
run: |
docker push "${ARTIFACTORY_URL}/${DOCKER_REPO}/${IMAGE_NAME}:${IMAGE_TAG}"
docker push "${ARTIFACTORY_URL}/${DOCKER_REPO}/${IMAGE_NAME}:latest"
- name: Test
run: ./mvnw test
# - name: Build Docker Image
# run: |
@ -50,13 +54,13 @@ jobs:
- name: Test
run: ./mvnw test
- name: Login to dockerhub
run: echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
# - name: Login to dockerhub
# run: echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
- name: Push Image to Docker Hub
run: |
docker push ybandala/petclinic:${{ github.sha }}
docker push ybandala/petclinic:latest
# - name: Push Image to Docker Hub
# run: |
# docker push ybandala/petclinic:${{ github.sha }}
# docker push ybandala/petclinic:latest
# - name: Install kubectl
# run: |
@ -74,21 +78,21 @@ jobs:
# # Wait for deployment to complete
# kubectl rollout status deployment/petclinic -n petclinic-dev --timeout=180s
- name: Deploy to Minikube
run: |
# Update image path in deployment yaml
sed -i '' 's|image: .*|image: ${{ secrets.ARTIFACTORY_URL }}/docker-local/petclinic:'${{ github.sha }}'|' k8s/base/deployment.yaml
# - name: Deploy to Minikube
# run: |
# # Update image path in deployment yaml
# sed -i '' 's|image: .*|image: ${{ secrets.ARTIFACTORY_URL }}/docker-local/petclinic:'${{ github.sha }}'|' k8s/base/deployment.yaml
# Configure kubectl to pull from Artifactory
kubectl create secret docker-registry artifactory-secret \
--docker-server=${{ secrets.ARTIFACTORY_URL }} \
--docker-username=${{ secrets.ARTIFACTORY_USERNAME }} \
--docker-password=${{ secrets.ARTIFACTORY_PASSWORD }}
# # Configure kubectl to pull from Artifactory
# kubectl create secret docker-registry artifactory-secret \
# --docker-server=${{ secrets.ARTIFACTORY_URL }} \
# --docker-username=${{ secrets.ARTIFACTORY_USERNAME }} \
# --docker-password=${{ secrets.ARTIFACTORY_PASSWORD }}
# Apply the secret to the namespace
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "artifactory-secret"}]}'
# # Apply the secret to the namespace
# kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "artifactory-secret"}]}'
# Apply deployment
kubectl apply -f k8s/base/
kubectl rollout status deployment/petclinic --timeout=180s
# # Apply deployment
# kubectl apply -f k8s/base/
# kubectl rollout status deployment/petclinic --timeout=180s