From 027bd4241b76cfa6fc87eded4b1f66f875b1eb7b Mon Sep 17 00:00:00 2001 From: bskjon Date: Sun, 23 Feb 2025 02:16:46 +0100 Subject: [PATCH] Added UI workflow --- .github/workflows/v4.yml | 78 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/.github/workflows/v4.yml b/.github/workflows/v4.yml index 09b198f8..a69c7781 100644 --- a/.github/workflows/v4.yml +++ b/.github/workflows/v4.yml @@ -304,3 +304,81 @@ jobs: bskjon/mediaprocessing-pymetadata:v4 bskjon/mediaprocessing-pymetadata:v4-${{ github.sha }} bskjon/mediaprocessing-pymetadata:v4-${{ steps.docker-tag.outputs.tag }} + + build-ui: + needs: + - build-shared + - pre-check + if: ${{ needs.pre-check.outputs.ui == 'true' || github.event_name == 'workflow_dispatch' || needs.pre-check.outputs.sharedLibrary == 'true' }} + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Cache Shared Gradle dependencies + id: cache-gradle + uses: actions/cache@v4 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('shared/build.gradle.kts') }} + + + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: '14' + - name: Install dependencies + run: npm install + working-directory: ./apps/ui/web + + - name: Build React app + run: npm run build + working-directory: ./apps/ui/web + + - name : Copy build files + run: | + mkdir -p ./apps/ui/src/main/resources/static + cp -r ./apps/ui/web/build/* ./apps/ui/src/main/resources/static + + - name: Extract version from build.gradle.kts + id: extract_version + run: | + VERSION=$(cat ./apps/ui/build.gradle.kts | grep '^version\s*=\s*\".*\"' | sed 's/^version\s*=\s*\"\(.*\)\"/\1/') + echo "VERSION=$VERSION" + echo "VERSION=$VERSION" >> $GITHUB_ENV + + - name: Build UI module + id: build-ui + run: | + chmod +x ./gradlew + ./gradlew :apps:ui:bootJar + echo "Build completed" + + + - name: Generate Docker image tag + id: docker-tag + run: echo "::set-output name=tag::$(date -u +'%Y.%m.%d')-$(uuidgen | cut -c 1-8)" + + - name: Docker login + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + username: ${{ secrets.DOCKER_HUB_NAME }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} + + - name: Debug Check extracted version + run: | + echo "Extracted version: ${{ env.VERSION }}" + + - name: Build and push Docker image + uses: docker/build-push-action@v2 + with: + context: . + file: ./dockerfiles/DebianJava + build-args: | + MODULE_NAME=ui + PASS_APP_VERSION=${{ env.VERSION }} + push: true + tags: | + bskjon/mediaprocessing-ui:v4 + bskjon/mediaprocessing-ui:v4-${{ github.sha }} + bskjon/mediaprocessing-ui:v4-${{ steps.docker-tag.outputs.tag }} \ No newline at end of file