diff --git a/.github/workflows/dockerhub-push.yml b/.github/workflows/dockerhub-push.yml index b4605a6b..5296867e 100644 --- a/.github/workflows/dockerhub-push.yml +++ b/.github/workflows/dockerhub-push.yml @@ -3,35 +3,51 @@ name: Docker Hub Push on: push: branches: - - 'notification/dev' + - '**/dev' + - '!web/dev' + - '!android/dev' jobs: - build: + build-and-push: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - - name: Set up JDK 17 - uses: actions/setup-java@v2 - with: - java-version: '17' - distribution: 'temurin' - - - name: Grant execute permission for gradlew - run: chmod +x src/notification-service/gradlew - - - name: Build with Gradle - run: | - cd src/notification-service - ./gradlew clean build - - - name: Build Dockerfile and Push Docker Image - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: | - cd src/notification-service - docker build -t $DOCKER_USERNAME/notification-service:latest . - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - docker push $DOCKER_USERNAME/notification-service:latest + - name: Checkout Repository + uses: actions/checkout@v2 + + - name: Set Environment Variables + run: | + BRANCH_NAME=$(echo $GITHUB_REF | awk -F'/' '{print $3}') + echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + java-version: '17' + distribution: 'temurin' + + - name: Grant execute permission for gradlew + run: chmod +x src/${{ env.BRANCH_NAME }}-service/gradlew + + - name: Build with Gradle + run: | + cd src/${{ env.BRANCH_NAME }}-service + ./gradlew clean build + + - name: Build and Push Docker Image + env: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + BRANCH_NAME: ${{ env.BRANCH_NAME }} + run: | + if [ -n "$BRANCH_NAME" ]; then + DOCKERFILE_DIR="src/$BRANCH_NAME-service" + else + echo "Failed to extract branch name from GITHUB_REF." + exit 1 + fi + + cd $DOCKERFILE_DIR + docker build -t $DOCKER_USERNAME/$BRANCH_NAME-service:latest . + docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD + docker push $DOCKER_USERNAME/$BRANCH_NAME-service:latest