stop estargz-optimizing #1220
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Basic e2e test | |
on: | |
pull_request: | |
branches: ['main'] | |
jobs: | |
e2e: | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: | |
- ubuntu-latest | |
- windows-latest | |
name: e2e ${{ matrix.platform }} | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 | |
- uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 | |
with: | |
go-version: '1.20' | |
check-latest: true | |
- name: Build and run ko container | |
env: | |
KO_DOCKER_REPO: ko.local | |
shell: bash | |
run: | | |
set -euxo pipefail | |
# eval `go env`, compatible with Windows and Linux | |
# cribbed from https://gist.github.com/Syeberman/39d81b1e17d091be5657ecd6fbff0753 | |
eval $(go env | sed -r 's/^(set )?(\w+)=("?)(.*)\3$/\2="\4"/gm') | |
# Check that building without push prints the tag (and sha) | |
KO_DOCKER_REPO="" go run ./ build --push=false ./test | grep ":latest@sha256:" | |
KO_DOCKER_REPO="" go run ./ build --push=false -t test ./test | grep ":test@sha256:" | |
KO_DOCKER_REPO="" go run ./ build --push=false -t test --tag-only ./test | grep ":test$" | |
# Check that using sbom-dir works. | |
KO_DOCKER_REPO="" go run ./ build -t test --push=false --sbom-dir ./sbom-data ./test | |
jq . ./sbom-data/test-linux-amd64.spdx.json | |
# Check that using sbom-dir works for multi-arch | |
KO_DOCKER_REPO="" go run ./ build --platform=linux/amd64,linux/arm64 -t test --push=false --sbom-dir ./sbom-data2 ./test | |
jq . ./sbom-data2/test-index.spdx.json | |
jq . ./sbom-data2/test-linux-amd64.spdx.json | |
jq . ./sbom-data2/test-linux-arm64.spdx.json | |
export PLATFORM=${GOOS}/${GOARCH} | |
if [[ "${{ matrix.platform }}" == "windows-latest" ]]; then | |
OSVERSION="10.0.20348" | |
PLATFORM=${PLATFORM}:${OSVERSION} | |
export KO_DEFAULTBASEIMAGE=mcr.microsoft.com/windows/nanoserver:ltsc2022 | |
else | |
# Explicitly test multiple platform builds (a subset of what's in the base!) | |
export PLATFORM=${PLATFORM},linux/arm64 | |
fi | |
echo platform is ${PLATFORM} | |
# Build and run the ko binary, which should be runnable. | |
docker run $(go run ./ build ./ --platform=${PLATFORM} --preserve-import-paths) version | |
# Build and run the test/ binary, which should log "Hello there" served from KO_DATA_PATH | |
testimg=$(go run ./ build ./test --platform=${PLATFORM} --preserve-import-paths) | |
docker run ${testimg} --wait=false 2>&1 | tee >(grep "Hello there") # Log all output too. | |
# Check that symlinks in kodata are chased. | |
# Skip this test on Windows. | |
if [[ "$RUNNER_OS" == "Linux" ]]; then | |
docker run ${testimg} --wait=false -f b | |
fi | |
# Check that using ldflags to set variables works. | |
cat > .ko.yaml << EOF | |
builds: | |
- id: test | |
main: ./test/ | |
ldflags: | |
- "-X main.version=${{ github.sha }}" | |
EOF | |
docker run $(go run ./ build ./test/ --platform=${PLATFORM}) --wait=false 2>&1 | grep "${{ github.sha }}" |