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: - uses: actions/checkout@v4 - 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