name: Build Docker Image on: push: branches: - main pull_request: jobs: build: runs-on: docker steps: - name: Clone repo run: | echo "Cloning repository $GITHUB_REPOSITORY..." git clone "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" "$GITHUB_WORKSPACE" cd "$GITHUB_WORKSPACE" git submodule update --init --recursive - name: Log in to Docker registry run: | REGISTRY="${GITHUB_SERVER_URL#https://}" echo "${{ secrets.DOCKER_REPO_TOKEN }}" | docker login "$REGISTRY" -u "${{ secrets.DOCKER_REPO_USER }}" --password-stdin - name: Build and tag Docker image run: | cd "$GITHUB_WORKSPACE" COMMIT_HASH="${GITHUB_SHA::7}" REGISTRY="${GITHUB_SERVER_URL#https://}" IMAGE="$REGISTRY/$GITHUB_REPOSITORY/duino-coin" echo "Building Docker image with tags: latest and $COMMIT_HASH" docker build -t "$IMAGE:latest" -t "$IMAGE:$COMMIT_HASH" . - name: Push Docker image run: | REGISTRY="${GITHUB_SERVER_URL#https://}" COMMIT_HASH="${GITHUB_SHA::7}" IMAGE="$REGISTRY/$GITHUB_REPOSITORY/duino-coin" docker push "$IMAGE:latest" docker push "$IMAGE:$COMMIT_HASH"