Browse Source

update gha pipeline

Daniel Bohry 8 months ago
parent
commit
7819d50c1d
1 changed files with 51 additions and 38 deletions
  1. 51 38
      .github/workflows/buildAndRelease.yml

+ 51 - 38
.github/workflows/buildAndRelease.yml

@@ -13,12 +13,6 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - name: Cache Gradle packages
-        uses: actions/cache@v2
-        with:
-          path: ~/.gradle/caches
-          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
-          restore-keys: ${{ runner.os }}-gradle-
       - name: Set up JDK
         uses: actions/setup-java@v3
         with:
@@ -35,12 +29,6 @@ jobs:
       - uses: actions/checkout@v3
       - name: Set up Docker Buildx
         uses: docker/setup-buildx-action@v1
-      - name: Cache Docker layers
-        uses: actions/cache@v2
-        with:
-          path: /tmp/.buildx-cache
-          key: ${{ runner.os }}-buildx-${{ github.sha }}
-          restore-keys: ${{ runner.os }}-buildx-
       - name: Set up JDK
         uses: actions/setup-java@v3
         with:
@@ -56,33 +44,58 @@ jobs:
       - name: Push image
         run: docker push lhamacorp/stocks-be
 
-  deploy:
-    name: Deploy to Server
-    needs: dockerize
+  dockerize-arm:
+    name: Dockerize ARM Application
+    needs: build-and-test
     runs-on: ubuntu-latest
     steps:
-      - name: Deploy to Server
-        uses: appleboy/ssh-action@master
+      - uses: actions/checkout@v3
+      - name: Set up JDK
+        uses: actions/setup-java@v3
         with:
-          host: ${{ secrets.NEPTUNE_SERVER_IP }}
-          username: ${{ secrets.SERVER_USER }}
-          key: ${{ secrets.SSH_PRIVATE_KEY }}
-          script: |
-            docker pull lhamacorp/stocks-be:latest
-            docker stop stocks-be || true
-            docker rm stocks-be || true
-            docker run -d --name stocks-be -p 42902:8080 -e mongo=${{ secrets.MONGO }} -e database=${{ secrets.DATABASE }} -e stock_provider=${{ secrets.STOCK_PROVIDER_URL }} -e stock_key=${{ secrets.STOCK_PROVIDER_KEY }} -e exchange_provider=${{ secrets.EXCHANGE_PROVIDER_URL }} -e exchange_key=${{ secrets.EXCHANGE_PROVIDER_KEY }} lhamacorp/stocks-be:latest
-
-  cleanup:
-    name: Clean ups
-    needs: deploy
-    runs-on: ubuntu-latest
-    steps:
-      - name: Clean up Server
-        uses: appleboy/ssh-action@master
+          java-version: '21'
+          distribution: 'temurin'
+      - name: Build
+        run: ./gradlew build
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v2
+      - name: Login to Docker Hub
+        uses: docker/login-action@v2
         with:
-          host: ${{ secrets.NEPTUNE_SERVER_IP }}
-          username: ${{ secrets.SERVER_USER }}
-          key: ${{ secrets.SSH_PRIVATE_KEY }}
-          script: |
-            docker image prune -a -f
+          username: ${{ secrets.DOCKERHUB_USERNAME }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+      - name: Build and Push ARM Image
+        run: |
+          docker buildx create --use
+          docker buildx build --platform linux/arm64 -t lhamacorp/stocks-be:arm-latest --push .
+
+#  deploy:
+#    name: Deploy to Server
+#    needs: dockerize
+#    runs-on: ubuntu-latest
+#    steps:
+#      - name: Deploy to Server
+#        uses: appleboy/ssh-action@master
+#        with:
+#          host: ${{ secrets.NEPTUNE_SERVER_IP }}
+#          username: ${{ secrets.SERVER_USER }}
+#          key: ${{ secrets.SSH_PRIVATE_KEY }}
+#          script: |
+#            docker pull lhamacorp/stocks-be:latest
+#            docker stop stocks-be || true
+#            docker rm stocks-be || true
+#            docker run -d --name stocks-be -p 42902:8080 -e mongo=${{ secrets.MONGO }} -e database=${{ secrets.DATABASE }} -e stock_provider=${{ secrets.STOCK_PROVIDER_URL }} -e stock_key=${{ secrets.STOCK_PROVIDER_KEY }} -e exchange_provider=${{ secrets.EXCHANGE_PROVIDER_URL }} -e exchange_key=${{ secrets.EXCHANGE_PROVIDER_KEY }} lhamacorp/stocks-be:latest
+#
+#  cleanup:
+#    name: Clean ups
+#    needs: deploy
+#    runs-on: ubuntu-latest
+#    steps:
+#      - name: Clean up Server
+#        uses: appleboy/ssh-action@master
+#        with:
+#          host: ${{ secrets.NEPTUNE_SERVER_IP }}
+#          username: ${{ secrets.SERVER_USER }}
+#          key: ${{ secrets.SSH_PRIVATE_KEY }}
+#          script: |
+#            docker image prune -a -f