mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-16 21:05:50 +00:00
Compare commits
6 commits
61a131292a
...
0c957069be
Author | SHA1 | Date | |
---|---|---|---|
![]() |
0c957069be | ||
![]() |
c0921b268a | ||
![]() |
ab35eba56e | ||
![]() |
dacdb3b4e3 | ||
![]() |
1150fe7155 | ||
![]() |
8e6e9f45d9 |
1 changed files with 47 additions and 43 deletions
90
.github/workflows/build.yml
vendored
90
.github/workflows/build.yml
vendored
|
@ -7,20 +7,16 @@ on:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- 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
|
- name: Setup JFrog CLI
|
||||||
uses: jfrog/setup-jfrog-cli@v3
|
uses: jfrog/setup-jfrog-cli@v3
|
||||||
with:
|
with:
|
||||||
|
@ -28,19 +24,27 @@ jobs:
|
||||||
env:
|
env:
|
||||||
JF_URL: ${{ secrets.JF_URL }}
|
JF_URL: ${{ secrets.JF_URL }}
|
||||||
JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }}
|
JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }}
|
||||||
|
|
||||||
- name: Build and Push Docker Image to Artifactory
|
- name: Build Docker Image
|
||||||
run: |
|
run: |
|
||||||
# Build the image
|
# Build Docker image
|
||||||
docker build -t ${{ secrets.JF_URL }}/docker-local/petclinic:${{ github.sha }} .
|
docker build -t "${IMAGE_NAME}:${IMAGE_TAG}" .
|
||||||
docker tag ${{ secrets.JF_URL }}/docker-local/petclinic:${{ github.sha }} ${{ secrets.JF_URL }}/docker-local/petclinic:latest
|
|
||||||
|
# Tag for Artifactory
|
||||||
# Login to Artifactory
|
docker tag "${IMAGE_NAME}:${IMAGE_TAG}" "${ARTIFACTORY_URL}/${DOCKER_REPO}/${IMAGE_NAME}:${IMAGE_TAG}"
|
||||||
echo "${{ secrets.ARTIFACTORY_PASSWORD }}" | docker login ${{ secrets.JF_URL }} -u ${{ secrets.ARTIFACTORY_USERNAME }} --password-stdin
|
docker tag "${IMAGE_NAME}:${IMAGE_TAG}" "${ARTIFACTORY_URL}/${DOCKER_REPO}/${IMAGE_NAME}:latest"
|
||||||
|
|
||||||
# Push images
|
- name: Login to Artifactory
|
||||||
docker push ${{ secrets.JF_URL }}/docker-local/petclinic:${{ github.sha }}
|
run: |
|
||||||
docker push ${{ secrets.JF_URL }}/docker-local/petclinic:latest
|
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
|
# - name: Build Docker Image
|
||||||
# run: |
|
# run: |
|
||||||
|
@ -50,13 +54,13 @@ jobs:
|
||||||
- name: Test
|
- name: Test
|
||||||
run: ./mvnw test
|
run: ./mvnw test
|
||||||
|
|
||||||
- name: Login to dockerhub
|
# - name: Login to dockerhub
|
||||||
run: echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
|
# run: echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
|
||||||
|
|
||||||
- name: Push Image to Docker Hub
|
# - name: Push Image to Docker Hub
|
||||||
run: |
|
# run: |
|
||||||
docker push ybandala/petclinic:${{ github.sha }}
|
# docker push ybandala/petclinic:${{ github.sha }}
|
||||||
docker push ybandala/petclinic:latest
|
# docker push ybandala/petclinic:latest
|
||||||
|
|
||||||
# - name: Install kubectl
|
# - name: Install kubectl
|
||||||
# run: |
|
# run: |
|
||||||
|
@ -74,21 +78,21 @@ jobs:
|
||||||
|
|
||||||
# # Wait for deployment to complete
|
# # Wait for deployment to complete
|
||||||
# kubectl rollout status deployment/petclinic -n petclinic-dev --timeout=180s
|
# kubectl rollout status deployment/petclinic -n petclinic-dev --timeout=180s
|
||||||
- name: Deploy to Minikube
|
# - name: Deploy to Minikube
|
||||||
run: |
|
# run: |
|
||||||
# Update image path in deployment yaml
|
# # Update image path in deployment yaml
|
||||||
sed -i '' 's|image: .*|image: ${{ secrets.ARTIFACTORY_URL }}/docker-local/petclinic:'${{ github.sha }}'|' k8s/base/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
|
# # Configure kubectl to pull from Artifactory
|
||||||
kubectl create secret docker-registry artifactory-secret \
|
# kubectl create secret docker-registry artifactory-secret \
|
||||||
--docker-server=${{ secrets.ARTIFACTORY_URL }} \
|
# --docker-server=${{ secrets.ARTIFACTORY_URL }} \
|
||||||
--docker-username=${{ secrets.ARTIFACTORY_USERNAME }} \
|
# --docker-username=${{ secrets.ARTIFACTORY_USERNAME }} \
|
||||||
--docker-password=${{ secrets.ARTIFACTORY_PASSWORD }}
|
# --docker-password=${{ secrets.ARTIFACTORY_PASSWORD }}
|
||||||
|
|
||||||
# Apply the secret to the namespace
|
# # Apply the secret to the namespace
|
||||||
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "artifactory-secret"}]}'
|
# kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "artifactory-secret"}]}'
|
||||||
|
|
||||||
# Apply deployment
|
# # Apply deployment
|
||||||
kubectl apply -f k8s/base/
|
# kubectl apply -f k8s/base/
|
||||||
kubectl rollout status deployment/petclinic --timeout=180s
|
# kubectl rollout status deployment/petclinic --timeout=180s
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue