name: 'Setup ko' description: 'Install and authorize ko' branding: icon: box color: green inputs: version: description: 'Version of ko to install (tip, latest-release, v0.8.2, etc.)' required: true default: 'latest-release' runs: using: "composite" steps: - shell: bash run: | # Install ko: # - if version is "tip", install from tip of main. # - if version is "latest-release", look up latest release. # - otherwise, install the specified version. case ${{ inputs.version }} in tip) echo "Installing ko using go get" go get github.com/google/ko@main ;; latest-release) tag=$(curl -s https://api.github.com/repos/google/ko/releases | jq -r '.[].tag_name' | head -n 1) ;; *) tag="${{ inputs.version }}" esac if [[ ! -z ${tag} ]]; then echo "Installing ko @ ${tag}" curl -fsL https://github.com/google/ko/releases/download/${tag}/ko_${tag:1}_Linux_x86_64.tar.gz | sudo tar xzf - -C /usr/local/bin ko fi # NB: username doesn't seem to matter. echo "${{ github.token }}" | ko login ghcr.io --username "dummy" --password-stdin # Set KO_DOCKER_REPO for future steps. echo "KO_DOCKER_REPO=ghcr.io/${{ github.repository }}" echo "KO_DOCKER_REPO=ghcr.io/${{ github.repository }}" >> $GITHUB_ENV