diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml new file mode 100644 index 00000000..46d28ebc --- /dev/null +++ b/.github/workflows/cicd.yml @@ -0,0 +1,63 @@ +name: ci/cd + +on: + workflow_dispatch: + +permissions: + contents: read + +jobs: + build-backend: + runs-on: ubuntu-22.04 + defaults: + run: + working-directory: backend + + steps: + - name: Set up Repository + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: "17" + distribution: "corretto" + + - name: Give permission for Gradle + run: chmod +x gradlew + + - name: Cache Gradle + id: cache-gradle + uses: actions/cache@v4 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: Build with Gradle + run: ./gradlew bootJar + + - name: Upload jar file artifact + uses: actions/upload-artifact@v4 + with: + name: BackendApplicationJar + path: backend/build/libs/*.jar + + deploy: + needs: [build-backend] + runs-on: self-hosted + + steps: + - name: Remove previous version FRONT app + working-directory: frontend/prod/ + run: rm -rf dist + + - name: Remove previous version BACK jar + working-directory: backend/prod/ + run: rm -f *.jar + + - name: Download BACK jar file from artifact + uses: actions/download-artifact@v4 + with: + name: BackendApplicationJar + path: backend/prod/