name: Build and Upload GCP CCM container image env: REGISTRY: ghcr.io on: [workflow_dispatch] jobs: build-ccm-gcp: runs-on: ubuntu-latest permissions: contents: read packages: write strategy: matrix: version: [v25.2.0, v24.0.0, v23.0.0] include: - version: v25.2.0 latest: true steps: - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 with: repository: "kubernetes/cloud-provider-gcp" ref: refs/tags/ccm/${{ matrix.version }} - name: Docker meta id: meta uses: docker/metadata-action@57396166ad8aefe6098280995947635806a0e6ea # tag=v4.1.1 with: images: | ${{ env.REGISTRY }}/edgelesssys/cloud-provider-gcp flavor: | latest=${{ matrix.latest || false }} tags: | type=semver,pattern=v{{version}},value=${{ matrix.version }} type=semver,pattern=v{{major}}.{{minor}},value=${{ matrix.version }} type=semver,pattern=v{{major}},value=${{ matrix.version }} - name: Log in to the Container registry id: docker-login uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # tag=v2.1.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Install bazelisk run: | curl -sLO "https://github.com/bazelbuild/bazelisk/releases/download/v1.14.0/bazelisk-linux-amd64" mkdir -p "${GITHUB_WORKSPACE}/bin/" mv bazelisk-linux-amd64 "${GITHUB_WORKSPACE}/bin/bazel" chmod +x "${GITHUB_WORKSPACE}/bin/bazel" - name: Build CCM run: | "${GITHUB_WORKSPACE}/bin/bazel" build //cmd/cloud-controller-manager:cloud-controller-manager - name: Copy CCM run: | # support new and old bazel output paths cp ./bazel-bin/cmd/cloud-controller-manager/cloud-controller-manager_/cloud-controller-manager ./cloud-controller-manager || \ cp ./bazel-bin/cmd/cloud-controller-manager/linux_amd64_pure_stripped/cloud-controller-manager ./cloud-controller-manager - name: Prepare Dockerfile run: | cat > Dockerfile <