diff --git a/.dockerignore b/.dockerignore index 4f34bcf92..4a18a2da7 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,10 @@ * -!Plugins +!.bazelrc +!.bazelversion +!bazel +!tools/bazelw +!BUILD +!ci.bazelrc +!MODULE.bazel !Source -!Tests -!Package.* +!WORKSPACE diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 9261ff259..1761df13f 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -29,17 +29,29 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 with: platforms: linux/amd64,linux/arm64 - name: Log in to GitHub registry - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io - - uses: docker/build-push-action@v2 + - name: Configure BuildBuddy + run: | + cat > ci.bazelrc <&2 + exit 1 +esac + +readonly bazel_version_url="https://github.com/bazelbuild/bazelisk/releases/download/v$bazelisk_version/bazelisk-$bazel_platform" +script_root="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +readonly bazelisk="$script_root/tmp/bazel/versions/bazelisk-$bazelisk_version-$bazel_platform" + +if [[ ! -x "$bazelisk" ]]; then + echo "Installing bazelisk..." >&2 + mkdir -p "$(dirname "$bazelisk")" + + download_bazelisk() { + curl --fail -L --retry 5 --retry-connrefused --silent --progress-bar \ + --output "$bazelisk" "$bazel_version_url" + } + + download_bazelisk || download_bazelisk + if echo "$bazel_version_sha $bazelisk" | shasum --check --status; then + chmod +x "$bazelisk" + else + echo "Bazelisk sha mismatch" >&2 + rm -f "$bazelisk" + exit 1 + fi +fi + +exec "$bazelisk" "$@"