Fixed oauth2 enhance token - build authentication-service, build node… #268
This file contains hidden or 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
| # This is a basic workflow to help you get started with Actions | |
| name: CI - Build and push Docker images - Person Service | |
| # Controls when the action will run. Triggers the workflow on push or pull request | |
| # events but only for the master branch | |
| on: | |
| push: | |
| branches: [ master ] | |
| # Environment variables available to all jobs and steps in this workflow | |
| env: | |
| GKE_PROJECT: ${{ secrets.GKE_PROJECT }} | |
| GKE_EMAIL: ${{ secrets.GKE_EMAIL }} | |
| GITHUB_SHA: ${{ github.sha }} | |
| GKE_ZONE: ${{ secrets.GKE_ZONE }} | |
| GKE_CLUSTER: ${{ secrets.GKE_CLUSTER }} | |
| GKE_KEY: ${{ secrets.GKE_KEY }} | |
| IMAGE: person-service | |
| AWS_REGION: ${{ secrets.AWS_REGION }} | |
| ECR_REPOSITORY: ${{ secrets.ECR_REPOSITORY }} | |
| ECS_SERVICE: "person-service" | |
| ECS_CLUSTER: ${{ secrets.ECS_CLUSTER }} | |
| ECS_TASK_DEFINITION: ".github/.aws/person-service-task-definition.json" | |
| CONTAINER_NAME: "person-service" | |
| SPRING_DATA_MONGODB_URI: ${{ secrets.SPRING_DATA_MONGODB_URI }} | |
| COM_MICROSERVICE_AUTHENTICATION_JWT_KEY_VALUE: ${{ secrets.COM_MICROSERVICE_AUTHENTICATION_JWT_KEY_VALUE }} | |
| # A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
| jobs: | |
| # This workflow contains a single job called "build" | |
| build: | |
| if: contains(toJson(github), 'build person-service') | |
| name: Build Jar/Docker Image and Publish to DockerHub | |
| # The type of runner that the job will run on | |
| runs-on: ubuntu-latest | |
| # Steps represent a sequence of tasks that will be executed as part of the job | |
| steps: | |
| # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| # Set up JDK | |
| - name: JDK | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '25' | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v1 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v1 | |
| # Login to Dockerhub | |
| - name: Login to DockerHub | |
| uses: docker/login-action@v1 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| # - name: Configure AWS credentials | |
| # uses: aws-actions/configure-aws-credentials@13d241b293754004c80624b5567555c4a39ffbe3 | |
| # with: | |
| # aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| # aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| # aws-region: ${{ env.AWS_REGION }} | |
| # | |
| # - name: Login to Amazon ECR | |
| # id: login-ecr | |
| # uses: aws-actions/amazon-ecr-login@aaf69d68aa3fb14c1d5a6be9ac61fe15b48453a2 | |
| # Build Docker image using docker:build | |
| # - name: Install Custom Spring Data Common Jar | |
| # run: | | |
| # mvn install:install-file -Dfile=docs/spring-data-commons-3.2.1-SNAPSHOT.jar -DgroupId=org.springframework.data -DartifactId=spring-data-commons -Dversion=3.2.1-SNAPSHOT -Dpackaging=jar | |
| - name: Create Custom settings.xml | |
| uses: s4u/maven-settings-action@v3.0.0 | |
| with: | |
| servers: | | |
| [{ | |
| "id": "github", | |
| "username": "${{ secrets.USERNAME_MAVEN_PKG }}", | |
| "password": "${{ secrets.PASSWORD_MAVEN_PKG }}" | |
| },{ | |
| "id": "github-sba", | |
| "username": "${{ secrets.USERNAME_MAVEN_PKG }}", | |
| "password": "${{ secrets.PASSWORD_MAVEN_PKG }}" | |
| }] | |
| # Build Docker image using docker:build | |
| - name: Build Service using docker:build | |
| run: | | |
| SPRING_CLOUD_CONSUL_CONFIG_ENABLED=false mvn clean package -Ddocker.image-tag=${{ env.GITHUB_SHA }} -DskipTests -q -pl person-service -am -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn docker:build | |
| - name: Push Image(amd64/arm64) | |
| id: docker_build | |
| uses: docker/build-push-action@v2 | |
| with: | |
| context: ./person-service/target/docker/person-service/build | |
| file: ./person-service/target/docker/person-service/build/Dockerfile | |
| platforms: linux/amd64,linux/arm64 | |
| push: true | |
| tags: | | |
| fielcapao/microservices-design-patterns-person-service:latest | |
| ${{ secrets.ECR_REPOSITORY }}/person-service:latest | |
| ${{ secrets.ECR_REPOSITORY }}/person-service:${{ env.GITHUB_SHA }} | |
| # TODO - Replace Not Working | |
| # - name: Replace secrets | |
| # run: | | |
| # sed -i 's/SPRING_DATA_MONGODB_URI_REPLACE\/${{ env.SPRING_DATA_MONGODB_URI }}/g' ${{ env.ECS_TASK_DEFINITION }} | |
| # sed -i 's/COM_MICROSERVICE_AUTHENTICATION_JWT_KEY_VALUE_REPLACE\/${{ env.COM_MICROSERVICE_AUTHENTICATION_JWT_KEY_VALUE }}/g' ${{ env.ECS_TASK_DEFINITION }} | |
| # | |
| # - name: Fill in the new image ID in the Amazon ECS task definition | |
| # id: task-def | |
| # uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
| # with: | |
| # task-definition: ${{ env.ECS_TASK_DEFINITION }} | |
| # container-name: ${{ env.CONTAINER_NAME }} | |
| # image: ${{ secrets.ECR_REPOSITORY }}/person-service:latest | |
| - name: Deploy Amazon ECS task definition | |
| uses: aws-actions/amazon-ecs-deploy-task-definition@v1 | |
| with: | |
| task-definition: ${{ env.ECS_TASK_DEFINITION }} | |
| service: ${{ env.ECS_SERVICE }} | |
| cluster: ${{ env.ECS_CLUSTER }} | |
| wait-for-service-stability: true | |
| - name: Image digest | |
| run: echo ${{ steps.docker_build.outputs.digest }} | |
| # Setup gcloud CLI | |
| # - name: Setup Google Cloud | |
| # uses: google-github-actions/setup-gcloud@master | |
| # with: | |
| # project_id: ${{ secrets.GKE_PROJECT }} | |
| # service_account_key: ${{ secrets.GKE_KEY }} | |
| # export_default_credentials: true | |
| # | |
| ## Configure docker to use the gcloud command-line tool as a credential helper | |
| # - name: Set up docker to authenticate | |
| # run: | | |
| # gcloud --quiet auth configure-docker | |
| # gcloud info | |
| ## Release Tag to Google Cloud | |
| # - name: Publish image to Google Cloud | |
| # run: | | |
| # docker tag $IMAGE:latest eu.gcr.io/$GKE_PROJECT/$IMAGE:$GITHUB_SHA | |
| # docker push eu.gcr.io/$GKE_PROJECT/$IMAGE:$GITHUB_SHA |