From 88f721c66c28ab890ca0c144c43158fb8e390008 Mon Sep 17 00:00:00 2001 From: Maksim Pischulenok Date: Sun, 7 Sep 2025 20:46:10 +0300 Subject: [PATCH] Simplify ci --- .github/workflows/ci.yaml | 55 ++++++++++++++++++++---- .github/workflows/release.yaml | 76 ---------------------------------- 2 files changed, 48 insertions(+), 83 deletions(-) delete mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2af10f8..27fce37 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,4 +1,4 @@ -name: CI Verification +name: CI on: push: @@ -6,14 +6,14 @@ on: pull_request: branches: [ main ] -# Cancel redundant, in-progress runs for the same branch or PR concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: - verify: - name: Build & Test + test: + name: Run Tests + if: github.event_name == 'pull_request' runs-on: ubuntu-latest steps: - name: Checkout code @@ -26,8 +26,49 @@ jobs: java-version: '21' cache: 'gradle' - - name: Verify with Gradle - # The 'build' command will compile, run tests, and package the app. - # If any step fails, the workflow will fail, protecting your main branch. + - name: Test with Gradle + run: ./gradlew check + + build-and-publish: + name: Build and Publish + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '21' + cache: 'gradle' + + - name: Build with Gradle run: ./gradlew build + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository }} + tags: | + type=raw,value=latest,enable=true + + - name: Build and push Docker image + uses: docker/build-push-action@v6 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml deleted file mode 100644 index 8101f7f..0000000 --- a/.github/workflows/release.yaml +++ /dev/null @@ -1,76 +0,0 @@ -name: Publish Release - -# This workflow is triggered ONLY when a new release is created in GitHub -on: - release: - types: [ created ] - -jobs: - build: - name: Build Release Artifact - runs-on: ubuntu-latest - steps: - - name: Checkout code - # Checks out the specific Git tag associated with the release - uses: actions/checkout@v4 - - - name: Set up JDK 21 - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '21' - cache: 'gradle' - - - name: Build with Gradle - run: ./gradlew build - - - name: Upload JAR artifact for publisher job - uses: actions/upload-artifact@v4 - with: - name: app-jar - path: build/libs/*.jar # Adjust path if needed - retention-days: 1 - - publish: - name: Publish to GitHub Container Registry - runs-on: ubuntu-latest - needs: build # This job waits for the 'build' job to succeed - permissions: - contents: read - packages: write - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Download JAR artifact from build job - uses: actions/download-artifact@v4 - with: - name: app-jar - path: build/libs - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata for Docker - id: meta - uses: docker/metadata-action@v5 - with: - images: ghcr.io/${{ github.repository }} - tags: | - # Tag with the release version (e.g., v1.2.3) - type=raw,value=${{ github.ref_name }} - # Also tag as 'latest' - type=raw,value=latest - - - name: Build and push Docker image - uses: docker/build-push-action@v6 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }}