Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make unit tests substantially faster #1498

Merged
merged 7 commits into from
Dec 2, 2022

Conversation

jonjohnsonjr
Copy link
Collaborator

Before:

$ time go test -short -count=1 ./...
ok  	github.com/google/go-containerregistry/cmd/crane	0.843s
?   	github.com/google/go-containerregistry/cmd/crane/cmd	[no test files]
?   	github.com/google/go-containerregistry/cmd/crane/help	[no test files]
ok  	github.com/google/go-containerregistry/cmd/gcrane	0.883s
?   	github.com/google/go-containerregistry/cmd/gcrane/cmd	[no test files]
?   	github.com/google/go-containerregistry/cmd/registry	[no test files]
ok  	github.com/google/go-containerregistry/internal/and	0.028s
ok  	github.com/google/go-containerregistry/internal/cmd	1.638s
ok  	github.com/google/go-containerregistry/internal/compare	0.044s
ok  	github.com/google/go-containerregistry/internal/compression	0.024s
?   	github.com/google/go-containerregistry/internal/depcheck	[no test files]
?   	github.com/google/go-containerregistry/internal/editor	[no test files]
ok  	github.com/google/go-containerregistry/internal/estargz	0.041s
ok  	github.com/google/go-containerregistry/internal/gzip	0.019s
?   	github.com/google/go-containerregistry/internal/httptest	[no test files]
ok  	github.com/google/go-containerregistry/internal/legacy	0.046s
?   	github.com/google/go-containerregistry/internal/redact	[no test files]
ok  	github.com/google/go-containerregistry/internal/retry	0.031s
?   	github.com/google/go-containerregistry/internal/retry/wait	[no test files]
?   	github.com/google/go-containerregistry/internal/signal	[no test files]
ok  	github.com/google/go-containerregistry/internal/verify	0.032s
ok  	github.com/google/go-containerregistry/internal/windows	0.038s
ok  	github.com/google/go-containerregistry/internal/zstd	0.045s
ok  	github.com/google/go-containerregistry/pkg/authn	0.091s
ok  	github.com/google/go-containerregistry/pkg/authn/github	0.030s
?   	github.com/google/go-containerregistry/pkg/compression	[no test files]
ok  	github.com/google/go-containerregistry/pkg/crane	0.399s
ok  	github.com/google/go-containerregistry/pkg/gcrane	0.436s
?   	github.com/google/go-containerregistry/pkg/legacy	[no test files]
ok  	github.com/google/go-containerregistry/pkg/legacy/tarball	0.684s
?   	github.com/google/go-containerregistry/pkg/logs	[no test files]
ok  	github.com/google/go-containerregistry/pkg/name	0.025s
ok  	github.com/google/go-containerregistry/pkg/registry	1.415s
ok  	github.com/google/go-containerregistry/pkg/v1	0.023s
ok  	github.com/google/go-containerregistry/pkg/v1/cache	0.153s
ok  	github.com/google/go-containerregistry/pkg/v1/daemon	0.094s
ok  	github.com/google/go-containerregistry/pkg/v1/empty	0.058s
?   	github.com/google/go-containerregistry/pkg/v1/fake	[no test files]
ok  	github.com/google/go-containerregistry/pkg/v1/google	0.299s
ok  	github.com/google/go-containerregistry/pkg/v1/layout	0.171s
ok  	github.com/google/go-containerregistry/pkg/v1/match	0.037s
ok  	github.com/google/go-containerregistry/pkg/v1/mutate	0.252s
ok  	github.com/google/go-containerregistry/pkg/v1/partial	0.362s
ok  	github.com/google/go-containerregistry/pkg/v1/random	0.094s
ok  	github.com/google/go-containerregistry/pkg/v1/remote	4.883s
ok  	github.com/google/go-containerregistry/pkg/v1/remote/transport	0.073s
ok  	github.com/google/go-containerregistry/pkg/v1/static	0.023s
ok  	github.com/google/go-containerregistry/pkg/v1/stream	0.148s
ok  	github.com/google/go-containerregistry/pkg/v1/tarball	1.202s
ok  	github.com/google/go-containerregistry/pkg/v1/types	0.013s
?   	github.com/google/go-containerregistry/pkg/v1/validate	[no test files]

real	0m7.176s
user	0m22.449s
sys	0m6.404s

After

$ time go test -short -count=1 ./...
ok  	github.com/google/go-containerregistry/cmd/crane	0.048s
?   	github.com/google/go-containerregistry/cmd/crane/cmd	[no test files]
?   	github.com/google/go-containerregistry/cmd/crane/help	[no test files]
ok  	github.com/google/go-containerregistry/cmd/gcrane	0.082s
?   	github.com/google/go-containerregistry/cmd/gcrane/cmd	[no test files]
?   	github.com/google/go-containerregistry/cmd/registry	[no test files]
ok  	github.com/google/go-containerregistry/internal/and	0.013s
ok  	github.com/google/go-containerregistry/internal/cmd	0.098s
ok  	github.com/google/go-containerregistry/internal/compare	0.079s
ok  	github.com/google/go-containerregistry/internal/compression	0.022s
?   	github.com/google/go-containerregistry/internal/depcheck	[no test files]
?   	github.com/google/go-containerregistry/internal/editor	[no test files]
ok  	github.com/google/go-containerregistry/internal/estargz	0.047s
ok  	github.com/google/go-containerregistry/internal/gzip	0.017s
?   	github.com/google/go-containerregistry/internal/httptest	[no test files]
ok  	github.com/google/go-containerregistry/internal/legacy	0.045s
?   	github.com/google/go-containerregistry/internal/redact	[no test files]
ok  	github.com/google/go-containerregistry/internal/retry	0.054s
?   	github.com/google/go-containerregistry/internal/retry/wait	[no test files]
?   	github.com/google/go-containerregistry/internal/signal	[no test files]
ok  	github.com/google/go-containerregistry/internal/verify	0.027s
ok  	github.com/google/go-containerregistry/internal/windows	0.100s
ok  	github.com/google/go-containerregistry/internal/zstd	0.035s
ok  	github.com/google/go-containerregistry/pkg/authn	0.081s
ok  	github.com/google/go-containerregistry/pkg/authn/github	0.038s
?   	github.com/google/go-containerregistry/pkg/compression	[no test files]
ok  	github.com/google/go-containerregistry/pkg/crane	0.383s
ok  	github.com/google/go-containerregistry/pkg/gcrane	0.151s
?   	github.com/google/go-containerregistry/pkg/legacy	[no test files]
ok  	github.com/google/go-containerregistry/pkg/legacy/tarball	0.634s
?   	github.com/google/go-containerregistry/pkg/logs	[no test files]
ok  	github.com/google/go-containerregistry/pkg/name	0.058s
ok  	github.com/google/go-containerregistry/pkg/registry	0.209s
ok  	github.com/google/go-containerregistry/pkg/v1	0.049s
ok  	github.com/google/go-containerregistry/pkg/v1/cache	0.140s
ok  	github.com/google/go-containerregistry/pkg/v1/daemon	0.128s
ok  	github.com/google/go-containerregistry/pkg/v1/empty	0.036s
?   	github.com/google/go-containerregistry/pkg/v1/fake	[no test files]
ok  	github.com/google/go-containerregistry/pkg/v1/google	0.222s
ok  	github.com/google/go-containerregistry/pkg/v1/layout	0.193s
ok  	github.com/google/go-containerregistry/pkg/v1/match	0.013s
ok  	github.com/google/go-containerregistry/pkg/v1/mutate	0.284s
ok  	github.com/google/go-containerregistry/pkg/v1/partial	0.148s
ok  	github.com/google/go-containerregistry/pkg/v1/random	0.085s
ok  	github.com/google/go-containerregistry/pkg/v1/remote	0.820s
ok  	github.com/google/go-containerregistry/pkg/v1/remote/transport	0.076s
ok  	github.com/google/go-containerregistry/pkg/v1/static	0.044s
ok  	github.com/google/go-containerregistry/pkg/v1/stream	0.145s
ok  	github.com/google/go-containerregistry/pkg/v1/tarball	0.280s
ok  	github.com/google/go-containerregistry/pkg/v1/types	0.021s
?   	github.com/google/go-containerregistry/pkg/v1/validate	[no test files]

real	0m2.836s
user	0m16.766s
sys	0m4.375s

The logger was previously just being ignored.
* Avoid using registry.TLS for tests.
* Reduce arbitrary numbers for layer sizes.
* Use a much shorter backoff delay in tests.
This was pulling from DockerHub so that the example in godoc was nice,
but it is slow and fragile and very very bad.
It's really slow to do this self-signed cert dance, so just avoid it
altogether.
@codecov-commenter
Copy link

Codecov Report

Merging #1498 (df33b48) into main (37b993a) will increase coverage by 0.06%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #1498      +/-   ##
==========================================
+ Coverage   73.13%   73.19%   +0.06%     
==========================================
  Files         117      117              
  Lines        8944     8946       +2     
==========================================
+ Hits         6541     6548       +7     
+ Misses       1743     1738       -5     
  Partials      660      660              
Impacted Files Coverage Δ
pkg/registry/blobs.go 61.93% <ø> (ø)
pkg/v1/remote/options.go 76.36% <ø> (+4.54%) ⬆️
pkg/registry/registry.go 100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@imjasonh
Copy link
Collaborator

imjasonh commented Dec 2, 2022

Nice. I see a lot of changes, what would you say were the biggest impacts to speed? Skipping depcheck tests?

Kinda sucks that we'll only get the benefits when we remember to pass -short.

func TestEditConfig(t *testing.T) {
src := "gcr.io/crane/edit/config"
reg, err := registry.TLS("gcr.io")
func mustRegistry(t *testing.T) (*httptest.Server, string) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like a useful utility to share in an exported internal package somewhere. Maybe even an exported non-internal one tbh.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we make it reusable publicly we could try to make it return host, close so folks can just defer close() and not have visibility into the registry at all besides the host.

@jonjohnsonjr
Copy link
Collaborator Author

what would you say were the biggest impacts to speed?

Mostly from dropping the example test that hit the internet and depcheck... but also just making random layers smaller or index/manifests have fewer entries. Lots of time is spent in sha256 and gzip. The registry.TLS thing also took ~1s every time.

Kinda sucks that we'll only get the benefits when we remember to pass -short.

I suppose we could have a built tag for those tests that our presubmit runs?

@jonjohnsonjr jonjohnsonjr merged commit c7270c2 into google:main Dec 2, 2022
@jonjohnsonjr jonjohnsonjr deleted the faster-tests branch December 2, 2022 22:45
jimmykarily pushed a commit to kairos-io/provider-kairos that referenced this pull request May 17, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/google/go-containerregistry](https://github.com/google/go-containerregistry)
| require | minor | `v0.11.0` -> `v0.15.2` |

---

### Release Notes

<details>
<summary>google/go-containerregistry</summary>

###
[`v0.15.2`](https://github.com/google/go-containerregistry/releases/tag/v0.15.2)

[Compare
Source](https://github.com/google/go-containerregistry/compare/v0.15.1...v0.15.2)

#### What's Changed

- Make 403 non-fatal for manifest existence checks by
[@&#8203;jonjohnsonjr](https://github.com/jonjohnsonjr) in
[google/go-containerregistry#1691
- Do not reuse pushers for pullers by
[@&#8203;jonjohnsonjr](https://github.com/jonjohnsonjr) in
[google/go-containerregistry#1701

**Full Changelog**:
google/go-containerregistry@v0.15.1...v0.15.2

###
[`v0.15.1`](https://github.com/google/go-containerregistry/releases/tag/v0.15.1)

[Compare
Source](https://github.com/google/go-containerregistry/compare/v0.15.0...v0.15.1)

#### Changelog

-
[`e2620e5`](https://github.com/google/go-containerregistry/commit/e2620e56)
Actually retry retryable status codes
([#&#8203;1618](https://github.com/google/go-containerregistry/issues/1618))
-
[`afd15f1`](https://github.com/google/go-containerregistry/commit/afd15f14)
Add --all-tags flag to crane cp
([#&#8203;1682](https://github.com/google/go-containerregistry/issues/1682))
-
[`69d1a19`](https://github.com/google/go-containerregistry/commit/69d1a197)
Add `mutate` `--ports` option to set the exposed ports
([#&#8203;1677](https://github.com/google/go-containerregistry/issues/1677))
-
[`65e78dc`](https://github.com/google/go-containerregistry/commit/65e78dc8)
Add partial.Manifests for lazy index access
([#&#8203;1631](https://github.com/google/go-containerregistry/issues/1631))
-
[`3228a60`](https://github.com/google/go-containerregistry/commit/3228a601)
Add ppc64le to .goreleaser.yml
([#&#8203;1680](https://github.com/google/go-containerregistry/issues/1680))
-
[`0b12f56`](https://github.com/google/go-containerregistry/commit/0b12f56b)
Add ppc64le to all binaries
([#&#8203;1688](https://github.com/google/go-containerregistry/issues/1688))
-
[`d958444`](https://github.com/google/go-containerregistry/commit/d9584448)
Add remote.Descriptor.Schema1()
([#&#8203;1626](https://github.com/google/go-containerregistry/issues/1626))
-
[`07c767c`](https://github.com/google/go-containerregistry/commit/07c767c7)
Add remote.Puller
([#&#8203;1644](https://github.com/google/go-containerregistry/issues/1644))
-
[`005bb71`](https://github.com/google/go-containerregistry/commit/005bb719)
Add remote.Reuse for Pusher/Puller
([#&#8203;1672](https://github.com/google/go-containerregistry/issues/1672))
-
[`21ac1b2`](https://github.com/google/go-containerregistry/commit/21ac1b24)
Adding `mutate` `--workdir` option to set the working directory
([#&#8203;1615](https://github.com/google/go-containerregistry/issues/1615))
-
[`0962e29`](https://github.com/google/go-containerregistry/commit/0962e296)
Allow remote config layers to be lazy fetched
([#&#8203;1634](https://github.com/google/go-containerregistry/issues/1634))
-
[`53189d3`](https://github.com/google/go-containerregistry/commit/53189d33)
Bump actions/setup-go from 3 to 4
([#&#8203;1602](https://github.com/google/go-containerregistry/issues/1602))
-
[`54e3f49`](https://github.com/google/go-containerregistry/commit/54e3f49e)
Bump actions/stale from 7 to 8
([#&#8203;1616](https://github.com/google/go-containerregistry/issues/1616))
-
[`07eb440`](https://github.com/google/go-containerregistry/commit/07eb440c)
Bump codecov/codecov-action from 3.1.1 to 3.1.2
([#&#8203;1650](https://github.com/google/go-containerregistry/issues/1650))
-
[`58bd35b`](https://github.com/google/go-containerregistry/commit/58bd35bc)
Bump codecov/codecov-action from 3.1.2 to 3.1.3
([#&#8203;1668](https://github.com/google/go-containerregistry/issues/1668))
-
[`e055961`](https://github.com/google/go-containerregistry/commit/e055961a)
Bump peter-evans/create-pull-request from 4 to 5
([#&#8203;1642](https://github.com/google/go-containerregistry/issues/1642))
-
[`b8d1c0a`](https://github.com/google/go-containerregistry/commit/b8d1c0a1)
Bump slsa-framework/slsa-verifier from 2.0.1 to 2.1.0
([#&#8203;1621](https://github.com/google/go-containerregistry/issues/1621))
-
[`375fb61`](https://github.com/google/go-containerregistry/commit/375fb61c)
Bump slsa-framework/slsa-verifier from 2.1.0 to 2.2.0
([#&#8203;1649](https://github.com/google/go-containerregistry/issues/1649))
-
[`9aa45a1`](https://github.com/google/go-containerregistry/commit/9aa45a1a)
Change return type of remote.Referrers
([#&#8203;1652](https://github.com/google/go-containerregistry/issues/1652))
-
[`2ccd41c`](https://github.com/google/go-containerregistry/commit/2ccd41c4)
Cleanup: Switch the debug image to `cgr.dev/chainguard/busybox`
([#&#8203;1638](https://github.com/google/go-containerregistry/issues/1638))
-
[`93be9c4`](https://github.com/google/go-containerregistry/commit/93be9c42)
Don't export whiteouts for single layers
([#&#8203;1629](https://github.com/google/go-containerregistry/issues/1629))
-
[`b7c6e9d`](https://github.com/google/go-containerregistry/commit/b7c6e9dc)
Fall back to puller if reusing pusher fails
([#&#8203;1676](https://github.com/google/go-containerregistry/issues/1676))
-
[`370e8a5`](https://github.com/google/go-containerregistry/commit/370e8a5f)
Fix a few lint issues
([#&#8203;1684](https://github.com/google/go-containerregistry/issues/1684))
-
[`bc990d6`](https://github.com/google/go-containerregistry/commit/bc990d6b)
Fix fetching referrers error handling
([#&#8203;1648](https://github.com/google/go-containerregistry/issues/1648))
-
[`aee00b1`](https://github.com/google/go-containerregistry/commit/aee00b15)
Fix race in mutate
([#&#8203;1627](https://github.com/google/go-containerregistry/issues/1627))
-
[`4a79e94`](https://github.com/google/go-containerregistry/commit/4a79e94b)
Fix race in stream
([#&#8203;1632](https://github.com/google/go-containerregistry/issues/1632))
-
[`6743ec9`](https://github.com/google/go-containerregistry/commit/6743ec96)
Implement remote.Pusher
([#&#8203;1633](https://github.com/google/go-containerregistry/issues/1633))
-
[`3120ba5`](https://github.com/google/go-containerregistry/commit/3120ba58)
Keep order of env in crane mutate
([#&#8203;1683](https://github.com/google/go-containerregistry/issues/1683))
-
[`6ac92e8`](https://github.com/google/go-containerregistry/commit/6ac92e8a)
Refactor fetcher, writer, and progress
([#&#8203;1625](https://github.com/google/go-containerregistry/issues/1625))
-
[`249d7e1`](https://github.com/google/go-containerregistry/commit/249d7e1f)
Refresh authn.DefaultKeychain creds every 5 min
([#&#8203;1624](https://github.com/google/go-containerregistry/issues/1624))
-
[`ad695c0`](https://github.com/google/go-containerregistry/commit/ad695c04)
Replace deprecated command with environment file
([#&#8203;1667](https://github.com/google/go-containerregistry/issues/1667))
-
[`ed5c185`](https://github.com/google/go-containerregistry/commit/ed5c185d)
Retry net.ErrClosed
([#&#8203;1637](https://github.com/google/go-containerregistry/issues/1637))
-
[`43710a9`](https://github.com/google/go-containerregistry/commit/43710a91)
Retry without mount if auth fails
([#&#8203;1681](https://github.com/google/go-containerregistry/issues/1681))
-
[`2435320`](https://github.com/google/go-containerregistry/commit/24353209)
Revert "Cleanup: Switch the debug image to `cgr.dev/chainguard/busybox`
([#&#8203;1638](https://github.com/google/go-containerregistry/issues/1638))"
([#&#8203;1641](https://github.com/google/go-containerregistry/issues/1641))
-
[`27a6ad6`](https://github.com/google/go-containerregistry/commit/27a6ad62)
Revert "authn: Add NewConfigKeychain to load a config from explicit path
([#&#8203;1603](https://github.com/google/go-containerregistry/issues/1603))"
([#&#8203;1664](https://github.com/google/go-containerregistry/issues/1664))
-
[`a34235c`](https://github.com/google/go-containerregistry/commit/a34235c8)
Support `Warning` header aggregation and reporting in `crane`
([#&#8203;1604](https://github.com/google/go-containerregistry/issues/1604))
-
[`01bbd53`](https://github.com/google/go-containerregistry/commit/01bbd539)
Update release.yml
([#&#8203;1601](https://github.com/google/go-containerregistry/issues/1601))
-
[`df518f9`](https://github.com/google/go-containerregistry/commit/df518f95)
add crane auth logout
([#&#8203;1589](https://github.com/google/go-containerregistry/issues/1589))
-
[`5438948`](https://github.com/google/go-containerregistry/commit/54389485)
add registry.Repo("foo")
([#&#8203;1671](https://github.com/google/go-containerregistry/issues/1671))
-
[`3706061`](https://github.com/google/go-containerregistry/commit/3706061a)
allow pkg/v1/random to accept a RNG source
([#&#8203;1675](https://github.com/google/go-containerregistry/issues/1675))
-
[`1cb7e13`](https://github.com/google/go-containerregistry/commit/1cb7e133)
authn: Add NewConfigKeychain to load a config from explicit path
([#&#8203;1603](https://github.com/google/go-containerregistry/issues/1603))
-
[`348cd86`](https://github.com/google/go-containerregistry/commit/348cd866)
bump deps using ./hack/bump-deps.sh
([#&#8203;1659](https://github.com/google/go-containerregistry/issues/1659))
-
[`691004b`](https://github.com/google/go-containerregistry/commit/691004b4)
bump deps using ./hack/bump-deps.sh
([#&#8203;1685](https://github.com/google/go-containerregistry/issues/1685))
-
[`df72a9a`](https://github.com/google/go-containerregistry/commit/df72a9a9)
crane push: print pushed ref@digest to stdout
([#&#8203;1663](https://github.com/google/go-containerregistry/issues/1663))
-
[`0577676`](https://github.com/google/go-containerregistry/commit/0577676c)
crane: ignore buildx attestations in flatten
([#&#8203;1630](https://github.com/google/go-containerregistry/issues/1630))
-
[`217318c`](https://github.com/google/go-containerregistry/commit/217318c3)
deprecate estargz
([#&#8203;1660](https://github.com/google/go-containerregistry/issues/1660))
-
[`9f68710`](https://github.com/google/go-containerregistry/commit/9f68710b)
feat(daemon): generate config file from Docker Engine API
([#&#8203;1130](https://github.com/google/go-containerregistry/issues/1130))
-
[`52d59d1`](https://github.com/google/go-containerregistry/commit/52d59d1b)
feat(remote): make retryStatusCodes configurable
([#&#8203;1635](https://github.com/google/go-containerregistry/issues/1635))
-
[`6f96bba`](https://github.com/google/go-containerregistry/commit/6f96bba2)
gcrane: Use page size of 10,000 for googley things
([#&#8203;1645](https://github.com/google/go-containerregistry/issues/1645))
-
[`0f2db49`](https://github.com/google/go-containerregistry/commit/0f2db492)
release: use ko 0.13.0 to build images
([#&#8203;1607](https://github.com/google/go-containerregistry/issues/1607))
-
[`d64f9e0`](https://github.com/google/go-containerregistry/commit/d64f9e0e)
remove time from random.Image history
([#&#8203;1678](https://github.com/google/go-containerregistry/issues/1678))
-
[`46488f7`](https://github.com/google/go-containerregistry/commit/46488f7d)
retry HTTP 499 errors by default
([#&#8203;1612](https://github.com/google/go-containerregistry/issues/1612))
-
[`ace7be7`](https://github.com/google/go-containerregistry/commit/ace7be76)
update GCR quotas
([#&#8203;1619](https://github.com/google/go-containerregistry/issues/1619))
-
[`d1c4e9f`](https://github.com/google/go-containerregistry/commit/d1c4e9ff)
verify provenance
([#&#8203;1611](https://github.com/google/go-containerregistry/issues/1611))

##### Container Images

https://gcr.io/go-containerregistry/crane:v0.15.1
https://gcr.io/go-containerregistry/gcrane:v0.15.1

For example:

    docker pull gcr.io/go-containerregistry/crane:v0.15.1
    docker pull gcr.io/go-containerregistry/gcrane:v0.15.1

###
[`v0.15.0`](https://github.com/google/go-containerregistry/compare/v0.14.0...v0.15.0)

[Compare
Source](https://github.com/google/go-containerregistry/compare/v0.14.0...v0.15.0)

###
[`v0.14.0`](https://github.com/google/go-containerregistry/releases/tag/v0.14.0)

[Compare
Source](https://github.com/google/go-containerregistry/compare/v0.13.0...v0.14.0)

#### Changelog

-
[`9306eba`](https://github.com/google/go-containerregistry/commit/9306ebad)
Allow crane edit to generate non-image artifacts
([#&#8203;1545](https://github.com/google/go-containerregistry/issues/1545))
-
[`de35f0f`](https://github.com/google/go-containerregistry/commit/de35f0f7)
Allow setting Content-Type in crane edit manifest
([#&#8203;1551](https://github.com/google/go-containerregistry/issues/1551))
-
[`4b081f8`](https://github.com/google/go-containerregistry/commit/4b081f80)
Avoid v1.Manifest in crane edit config
([#&#8203;1583](https://github.com/google/go-containerregistry/issues/1583))
-
[`1cfe1fc`](https://github.com/google/go-containerregistry/commit/1cfe1fc2)
Bump aws-actions/configure-aws-credentials from 1.7.0 to 2.0.0
([#&#8203;1593](https://github.com/google/go-containerregistry/issues/1593))
-
[`da1008f`](https://github.com/google/go-containerregistry/commit/da1008fb)
Bump golangci/golangci-lint-action from 3.3.1 to 3.4.0
([#&#8203;1548](https://github.com/google/go-containerregistry/issues/1548))
-
[`86be45f`](https://github.com/google/go-containerregistry/commit/86be45fb)
Bump goreleaser/goreleaser-action from 4.1.0 to 4.1.1
([#&#8203;1547](https://github.com/google/go-containerregistry/issues/1547))
-
[`62f183e`](https://github.com/google/go-containerregistry/commit/62f183e5)
Bump goreleaser/goreleaser-action from 4.1.1 to 4.2.0
([#&#8203;1556](https://github.com/google/go-containerregistry/issues/1556))
-
[`1b8dc2b`](https://github.com/google/go-containerregistry/commit/1b8dc2ba)
Bump slsa-framework/slsa-github-generator from 1.2.2 to 1.5.0
([#&#8203;1580](https://github.com/google/go-containerregistry/issues/1580))
-
[`11843ba`](https://github.com/google/go-containerregistry/commit/11843ba2)
Enforce proper sha256 usage
([#&#8203;1544](https://github.com/google/go-containerregistry/issues/1544))
-
[`2ceebaa`](https://github.com/google/go-containerregistry/commit/2ceebaaf)
Implement crane index subcommand
([#&#8203;1561](https://github.com/google/go-containerregistry/issues/1561))
-
[`9f42e02`](https://github.com/google/go-containerregistry/commit/9f42e028)
Set mediaType for empty.ImageIndex in RawManifest
([#&#8203;1562](https://github.com/google/go-containerregistry/issues/1562))
-
[`759b19f`](https://github.com/google/go-containerregistry/commit/759b19f7)
Support artifactType, for images whose config.mediaType is not a config
([#&#8203;1541](https://github.com/google/go-containerregistry/issues/1541))
-
[`b3c23b4`](https://github.com/google/go-containerregistry/commit/b3c23b4c)
Support for OCI 1.1+ referrers via API
([#&#8203;1546](https://github.com/google/go-containerregistry/issues/1546))
-
[`061ee6b`](https://github.com/google/go-containerregistry/commit/061ee6bf)
Support for OCI 1.1+ referrers via fallback tag
([#&#8203;1543](https://github.com/google/go-containerregistry/issues/1543))
-
[`6770304`](https://github.com/google/go-containerregistry/commit/67703048)
Update descriptor "data" field (when valid) during "crane edit config"
([#&#8203;1584](https://github.com/google/go-containerregistry/issues/1584))
-
[`76bac93`](https://github.com/google/go-containerregistry/commit/76bac933)
Update release.yml
([#&#8203;1540](https://github.com/google/go-containerregistry/issues/1540))
-
[`eb7d746`](https://github.com/google/go-containerregistry/commit/eb7d746c)
authn: also read mount secrets
([#&#8203;1560](https://github.com/google/go-containerregistry/issues/1560))
-
[`e94d408`](https://github.com/google/go-containerregistry/commit/e94d4089)
bump deps using ./hack/bump-deps.sh
([#&#8203;1592](https://github.com/google/go-containerregistry/issues/1592))
-
[`4e95ae2`](https://github.com/google/go-containerregistry/commit/4e95ae2b)
crane: add --flatten for index append
([#&#8203;1566](https://github.com/google/go-containerregistry/issues/1566))
-
[`ff810c1`](https://github.com/google/go-containerregistry/commit/ff810c18)
crane: add serve subcommand
([#&#8203;1586](https://github.com/google/go-containerregistry/issues/1586))
-
[`8ea5e0e`](https://github.com/google/go-containerregistry/commit/8ea5e0e8)
crane: support --omit-digest-tags in crane ls
([#&#8203;1528](https://github.com/google/go-containerregistry/issues/1528))
-
[`824efc7`](https://github.com/google/go-containerregistry/commit/824efc77)
fix(mutate): also set timestamps only present in some formats
([#&#8203;1550](https://github.com/google/go-containerregistry/issues/1550))
-
[`e04520b`](https://github.com/google/go-containerregistry/commit/e04520bc)
fix: Fix the crane release url and add more steps
([#&#8203;1532](https://github.com/google/go-containerregistry/issues/1532))
-
[`d872232`](https://github.com/google/go-containerregistry/commit/d8722327)
hash: use generic instantiation
([#&#8203;1538](https://github.com/google/go-containerregistry/issues/1538))
-
[`57f010d`](https://github.com/google/go-containerregistry/commit/57f010d2)
replace manual slsa-verifier installation with action
([#&#8203;1585](https://github.com/google/go-containerregistry/issues/1585))
-
[`9cd098e`](https://github.com/google/go-containerregistry/commit/9cd098e3)
skip tls verification if default transport is used with insecure option
([#&#8203;1559](https://github.com/google/go-containerregistry/issues/1559))
-
[`3624968`](https://github.com/google/go-containerregistry/commit/36249683)
tarball: pass imageToTags
([#&#8203;1563](https://github.com/google/go-containerregistry/issues/1563))

##### Container Images

https://gcr.io/go-containerregistry/crane:v0.14.0
https://gcr.io/go-containerregistry/gcrane:v0.14.0

For example:

    docker pull gcr.io/go-containerregistry/crane:v0.14.0
    docker pull gcr.io/go-containerregistry/gcrane:v0.14.0

###
[`v0.13.0`](https://github.com/google/go-containerregistry/releases/tag/v0.13.0)

[Compare
Source](https://github.com/google/go-containerregistry/compare/v0.12.1...v0.13.0)

#### What's Changed

- Bump slsa-framework/slsa-github-generator to 1.2.2 by
[@&#8203;jonjohnsonjr](https://github.com/jonjohnsonjr) in
[google/go-containerregistry#1489
- Features: Allow eliding `serviceaccount` lookups. by
[@&#8203;mattmoor](https://github.com/mattmoor) in
[google/go-containerregistry#1490
- Bump golangci/golangci-lint-action from 3.3.0 to 3.3.1 by
[@&#8203;dependabot](https://github.com/dependabot) in
[google/go-containerregistry#1491
- add source archive checksum into the checksums.txt by
[@&#8203;developer-guy](https://github.com/developer-guy) in
[google/go-containerregistry#1492
- Fix calculating tarball size when duplicated layers exist by
[@&#8203;tydra-wang](https://github.com/tydra-wang) in
[google/go-containerregistry#1495
- Add support for zstd compression by
[@&#8203;LFrobeen](https://github.com/LFrobeen) in
[google/go-containerregistry#1487
- docs: pull latest instead of debug by
[@&#8203;AndrewCharlesHay](https://github.com/AndrewCharlesHay) in
[google/go-containerregistry#1497
- Make credential warning slightly more accurate by
[@&#8203;jonjohnsonjr](https://github.com/jonjohnsonjr) in
[google/go-containerregistry#1499
- Make unit tests substantially faster by
[@&#8203;jonjohnsonjr](https://github.com/jonjohnsonjr) in
[google/go-containerregistry#1498
- Use the default retry predicate in transport by
[@&#8203;jonjohnsonjr](https://github.com/jonjohnsonjr) in
[google/go-containerregistry#1502
- Revert "docs: pull latest instead of debug
([#&#8203;1497](https://github.com/google/go-containerregistry/issues/1497))"
by [@&#8203;jonjohnsonjr](https://github.com/jonjohnsonjr) in
[google/go-containerregistry#1504
- Update Arch Linux install instructions by
[@&#8203;kpcyrd](https://github.com/kpcyrd) in
[google/go-containerregistry#1508
- Fix various lints by
[@&#8203;jonjohnsonjr](https://github.com/jonjohnsonjr) in
[google/go-containerregistry#1507
- Fix missing doc comment by
[@&#8203;jonjohnsonjr](https://github.com/jonjohnsonjr) in
[google/go-containerregistry#1509
- Treat empty registry config as anonymous by
[@&#8203;lcarva](https://github.com/lcarva) in
[google/go-containerregistry#1512
- Bump goreleaser/goreleaser-action from 3.2.0 to 4.1.0 by
[@&#8203;dependabot](https://github.com/dependabot) in
[google/go-containerregistry#1511
- Bump actions/stale from 6 to 7 by
[@&#8203;dependabot](https://github.com/dependabot) in
[google/go-containerregistry#1519
- Race http fallback ping by
[@&#8203;jonjohnsonjr](https://github.com/jonjohnsonjr) in
[google/go-containerregistry#1521
- FIX mutate.Time not respecting history by
[@&#8203;miguelvalerio](https://github.com/miguelvalerio) in
[google/go-containerregistry#1520
- test: use `T.TempDir` to create temporary test directory by
[@&#8203;Juneezee](https://github.com/Juneezee) in
[google/go-containerregistry#1522
- crane: add digest --full by
[@&#8203;imjasonh](https://github.com/imjasonh) in
[google/go-containerregistry#1524
- Hack around DockerHub plugin scope handling by
[@&#8203;jonjohnsonjr](https://github.com/jonjohnsonjr) in
[google/go-containerregistry#1527
- crane: support --full-ref for crane ls by
[@&#8203;imjasonh](https://github.com/imjasonh) in
[google/go-containerregistry#1525
- Revert plugin scope hack by
[@&#8203;jonjohnsonjr](https://github.com/jonjohnsonjr) in
[google/go-containerregistry#1531
- clarify crane download readme by
[@&#8203;dtanner](https://github.com/dtanner) in
[google/go-containerregistry#1533

#### New Contributors

- [@&#8203;LFrobeen](https://github.com/LFrobeen) made their first
contribution in
[google/go-containerregistry#1487
- [@&#8203;AndrewCharlesHay](https://github.com/AndrewCharlesHay) made
their first contribution in
[google/go-containerregistry#1497
- [@&#8203;kpcyrd](https://github.com/kpcyrd) made their first
contribution in
[google/go-containerregistry#1508
- [@&#8203;miguelvalerio](https://github.com/miguelvalerio) made their
first contribution in
[google/go-containerregistry#1520
- [@&#8203;Juneezee](https://github.com/Juneezee) made their first
contribution in
[google/go-containerregistry#1522
- [@&#8203;dtanner](https://github.com/dtanner) made their first
contribution in
[google/go-containerregistry#1533

**Full Changelog**:
google/go-containerregistry@v0.12.1...v0.13.0

###
[`v0.12.1`](https://github.com/google/go-containerregistry/releases/tag/v0.12.1)

[Compare
Source](https://github.com/google/go-containerregistry/compare/v0.12.0...v0.12.1)

#### Changelog

-
[`426de7d`](https://github.com/google/go-containerregistry/commit/426de7d4)
Bump golangci/golangci-lint-action from 3.2.0 to 3.3.0
([#&#8203;1475](https://github.com/google/go-containerregistry/issues/1475))
-
[`6442b02`](https://github.com/google/go-containerregistry/commit/6442b027)
Bump goreleaser/goreleaser-action from 3.1.0 to 3.2.0
([#&#8203;1476](https://github.com/google/go-containerregistry/issues/1476))
-
[`76ae819`](https://github.com/google/go-containerregistry/commit/76ae8192)
Fix context.DeadlineExceeded comparison
([#&#8203;1488](https://github.com/google/go-containerregistry/issues/1488))
-
[`1711cef`](https://github.com/google/go-containerregistry/commit/1711cefd)
Fix missing body.Close() in bearer auth
([#&#8203;1482](https://github.com/google/go-containerregistry/issues/1482))
-
[`02f47e1`](https://github.com/google/go-containerregistry/commit/02f47e13)
bump version of slsa generator
([#&#8203;1468](https://github.com/google/go-containerregistry/issues/1468))
-
[`353a117`](https://github.com/google/go-containerregistry/commit/353a1176)
crane: add catalog argument use annotation
([#&#8203;1473](https://github.com/google/go-containerregistry/issues/1473))
-
[`a0cca8a`](https://github.com/google/go-containerregistry/commit/a0cca8a0)
k8schain: Log and proceed if secret or SA are not found
([#&#8203;1472](https://github.com/google/go-containerregistry/issues/1472))

##### Container Images

https://gcr.io/go-containerregistry/crane:v0.12.1
https://gcr.io/go-containerregistry/gcrane:v0.12.1

For example:

    docker pull gcr.io/go-containerregistry/crane:v0.12.1
    docker pull gcr.io/go-containerregistry/gcrane:v0.12.1

###
[`v0.12.0`](https://github.com/google/go-containerregistry/releases/tag/v0.12.0)

[Compare
Source](https://github.com/google/go-containerregistry/compare/v0.11.0...v0.12.0)

#### Changelog

-
[`9b4fdd5`](https://github.com/google/go-containerregistry/commit/9b4fdd50)
Bump actions/setup-go from 2 to 3
([#&#8203;1463](https://github.com/google/go-containerregistry/issues/1463))
-
[`7268da0`](https://github.com/google/go-containerregistry/commit/7268da01)
Bump actions/stale from 5 to 6
([#&#8203;1452](https://github.com/google/go-containerregistry/issues/1452))
-
[`7196cf3`](https://github.com/google/go-containerregistry/commit/7196cf3d)
Bump aws-actions/configure-aws-credentials from 1.6.1 to 1.7.0
([#&#8203;1424](https://github.com/google/go-containerregistry/issues/1424))
-
[`8eae069`](https://github.com/google/go-containerregistry/commit/8eae069f)
Bump codecov/codecov-action from 3.1.0 to 3.1.1
([#&#8203;1453](https://github.com/google/go-containerregistry/issues/1453))
-
[`969699e`](https://github.com/google/go-containerregistry/commit/969699e7)
Bump deps using ./hack/bump-deps.sh
([#&#8203;1467](https://github.com/google/go-containerregistry/issues/1467))
-
[`c1f9836`](https://github.com/google/go-containerregistry/commit/c1f9836a)
Bump opencontainers/image-spec
([#&#8203;1423](https://github.com/google/go-containerregistry/issues/1423))
-
[`49cdb8b`](https://github.com/google/go-containerregistry/commit/49cdb8b4)
Correct usage of authn.NewKeychainFromHelper in docs
([#&#8203;1419](https://github.com/google/go-containerregistry/issues/1419))
-
[`3ba4c51`](https://github.com/google/go-containerregistry/commit/3ba4c511)
Fix tar PAX format handling
([#&#8203;1414](https://github.com/google/go-containerregistry/issues/1414))
-
[`24a1c33`](https://github.com/google/go-containerregistry/commit/24a1c335)
Ignore docker config if it's a directory
([#&#8203;1420](https://github.com/google/go-containerregistry/issues/1420))
-
[`a0f6687`](https://github.com/google/go-containerregistry/commit/a0f66878)
Make ErrBadName checkable via errors.Is()
([#&#8203;1462](https://github.com/google/go-containerregistry/issues/1462))
-
[`19e3eff`](https://github.com/google/go-containerregistry/commit/19e3eff7)
Retry ECONNRESET errors
([#&#8203;1415](https://github.com/google/go-containerregistry/issues/1415))
-
[`5749ee6`](https://github.com/google/go-containerregistry/commit/5749ee68)
Support the platform specific authentication of krane in "auth get"
command
([#&#8203;1413](https://github.com/google/go-containerregistry/issues/1413))
-
[`e3b94c7`](https://github.com/google/go-containerregistry/commit/e3b94c7e)
allow remote.DefaultTransport to be overridden by an http.RoundTripper
([#&#8203;1449](https://github.com/google/go-containerregistry/issues/1449))
-
[`f981b4c`](https://github.com/google/go-containerregistry/commit/f981b4c0)
deps: update goreleaser-action for bug
([#&#8203;1444](https://github.com/google/go-containerregistry/issues/1444))
-
[`771a9b4`](https://github.com/google/go-containerregistry/commit/771a9b44)
e2e: pull and export stdin and stdout
([#&#8203;1436](https://github.com/google/go-containerregistry/issues/1436))
-
[`87b3a79`](https://github.com/google/go-containerregistry/commit/87b3a796)
feat: Add krane to release archive
([#&#8203;1443](https://github.com/google/go-containerregistry/issues/1443))
-
[`2859a0d`](https://github.com/google/go-containerregistry/commit/2859a0d0)
feat: generate slsa provenance on github release artifacts
([#&#8203;1438](https://github.com/google/go-containerregistry/issues/1438))
-
[`9a5c14a`](https://github.com/google/go-containerregistry/commit/9a5c14ad)
fix crane's root.go after DefaultTransport change
([#&#8203;1450](https://github.com/google/go-containerregistry/issues/1450))
-
[`2b54510`](https://github.com/google/go-containerregistry/commit/2b54510b)
fix: consider base image media type when appending layers
([#&#8203;1437](https://github.com/google/go-containerregistry/issues/1437))
-
[`d3ed408`](https://github.com/google/go-containerregistry/commit/d3ed4089)
registry: implement blob deletion
([#&#8203;1432](https://github.com/google/go-containerregistry/issues/1432))
-
[`3413eb6`](https://github.com/google/go-containerregistry/commit/3413eb6c)
registry: implement pagination
([#&#8203;1430](https://github.com/google/go-containerregistry/issues/1430))
-
[`e2d575c`](https://github.com/google/go-containerregistry/commit/e2d575cf)
update crane installation instructions and release verification
([#&#8203;1440](https://github.com/google/go-containerregistry/issues/1440))

##### Container Images

https://gcr.io/go-containerregistry/crane:v0.12.0
https://gcr.io/go-containerregistry/gcrane:v0.12.0

For example:

    docker pull gcr.io/go-containerregistry/crane:v0.12.0
    docker pull gcr.io/go-containerregistry/gcrane:v0.12.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/kairos-io/provider-kairos).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS44LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNS44Ny4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants