name: Build Docker Image on: push: branches: [main, nightly, feature/nightly] env: REGISTRY: 192.168.1.100:3000 IMAGE: root/jukebox-vibe jobs: build: runs-on: ubuntu-latest container: image: docker:latest volumes: - /var/run/docker.sock:/var/run/docker.sock steps: - name: Checkout run: | apk add --no-cache git git clone --branch "${GITHUB_REF_NAME}" --depth 1 \ "http://root:${{ secrets.REGISTRY_PASSWORD }}@192.168.1.100:3000/${GITHUB_REPOSITORY}.git" . - name: Determine version and tag id: vars run: | BRANCH="${GITHUB_REF_NAME}" if [ "$BRANCH" = "main" ]; then TAG="main"; VERSION="2.0.0"; CHANNEL="stable" elif [ "$BRANCH" = "nightly" ] || [ "$BRANCH" = "feature/nightly" ]; then TAG="nightly"; VERSION="2.0.0-nightly"; CHANNEL="nightly" else TAG=$(echo "$BRANCH" | sed 's/\//-/g'); VERSION="2.0.0-dev"; CHANNEL="dev" fi echo "tag=$TAG" >> "$GITHUB_OUTPUT" echo "version=$VERSION" >> "$GITHUB_OUTPUT" echo "channel=$CHANNEL" >> "$GITHUB_OUTPUT" - name: Build and push run: | docker build \ --build-arg "VITE_BUILD_CHANNEL=${{ steps.vars.outputs.channel }}" \ --build-arg "VITE_APP_VERSION=${{ steps.vars.outputs.version }}" \ -t ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ steps.vars.outputs.tag }} \ -t ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ github.sha }} \ . if [ "${GITHUB_REF_NAME}" = "main" ]; then docker tag ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ steps.vars.outputs.tag }} \ ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest fi echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ env.REGISTRY }} -u root --password-stdin docker push ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ steps.vars.outputs.tag }} docker push ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ github.sha }} if [ "${GITHUB_REF_NAME}" = "main" ]; then docker push ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest fi