name: Build Frontend env: MAJOR: 1 MINOR: 0 defaults: run: shell: sh on: push: paths: - "frontend/**" workflow_dispatch: {} jobs: build: runs-on: host steps: - name: Install Git and Docker CLI run: apk add --no-cache git docker-cli docker-cli-buildx - name: Log in to Gitea Container Registry # This uses the automated token provided natively by Gitea Actions run: echo "${{ secrets.babymonitor_cicd }}" | docker login gitea.lan -u ${{ github.actor }} --password-stdin - name: Create Custom Buildx Builder for HTTP run: | # 1. Write a configuration rule forcing plain HTTP for your local domain echo '[registry."gitea.lan"]' > buildkitd.toml echo ' http = true' >> buildkitd.toml # 2. Tell buildx to create and use a builder with this rule docker buildx create --use --name local-http-builder --config buildkitd.toml - name: Checkout uses: actions/checkout@v4 with: # Tells the action to use the local 'git' binary we just installed set-safe-directory: 'true' fetch-depth: 0 - name: Determine Version run: | LATEST_TAG=$(git tag -l "v${{ env.MAJOR }}.${{ env.MINOR }}.*" | sort -V | tail -n 1) if [ -z "$LATEST_TAG" ]; then VERSION="v${{ env.MAJOR }}.${{ env.MINOR }}.0" else # Strip the 'v' if present and get the patch version PATCH=$(echo "$LATEST_TAG" | sed 's/v//' | cut -d'.' -f3) NEW_PATCH=$((PATCH + 1)) VERSION="v${{ env.MAJOR }}.${{ env.MINOR }}.$NEW_PATCH" fi echo "VERSION=$VERSION" >> "$GITHUB_ENV" - name: Build Docker image run: | docker buildx build \ --platform linux/arm64 \ --build-arg VITE_APP_VERSION=$(git describe --tags) \ --build-arg VITE_APP_GITSHA=$(git rev-parse --short HEAD) \ --build-arg VITE_BASE_PATH=/api/ingress/timer \ -t gitea.lan/jacobh2/babymonitor-frontend:${{ env.VERSION }} \ ./frontend \ --push - name: Tag and Push Version run: | git tag "$VERSION" git push origin "$VERSION"