Skip to content

Commit

Permalink
Merge branch 'main' into update-previous-image
Browse files Browse the repository at this point in the history
  • Loading branch information
importhuman authored Sep 17, 2021
2 parents 578c2d6 + 437c3f1 commit 09596bd
Show file tree
Hide file tree
Showing 8 changed files with 99 additions and 58 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ jobs:
TEST_COVERAGE: 1
run: make test
- name: Upload Coverage
uses: codecov/codecov-action@v2.0.3
uses: codecov/codecov-action@v2.1.0
with:
file: ./out/tests/coverage-unit.txt
flags: unit,os_${{ matrix.os }}
Expand Down
10 changes: 4 additions & 6 deletions .github/workflows/delivery-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,17 +54,15 @@ jobs:
files: buildpack.yml
- name: Determine App Name
run: 'echo "IMG_NAME=${{ env.USERNAME }}/${{ env.IMG_NAME }}" >> $GITHUB_ENV'
- name: Pack Build/Publish
uses: dfreilich/pack-action@v1
with:
args: 'build ${{ env.IMG_NAME }}:${{ steps.version.outputs.result }} --path $(pwd)/ --builder ${{ env.BUILDER }} --publish'
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to Dockerhub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Pack Build/Publish
uses: dfreilich/[email protected]
with:
args: 'build ${{ env.IMG_NAME }}:${{ steps.version.outputs.result }} --builder ${{ env.BUILDER }} --publish'
- name: Tag Image as Latest
run: |
docker pull ${{ env.IMG_NAME }}:${{ steps.version.outputs.result }}
Expand Down
32 changes: 19 additions & 13 deletions build.go
Original file line number Diff line number Diff line change
Expand Up @@ -297,25 +297,31 @@ func (c *Client) Build(ctx context.Context, opts BuildOptions) error {
return err
}

version := opts.ProjectDescriptor.Project.Version
sourceURL := opts.ProjectDescriptor.Project.SourceURL
runImageName, err = pname.TranslateRegistry(runImageName, c.registryMirrors, c.logger)
if err != nil {
return err
}

projectMetadata := platform.ProjectMetadata{}
if c.experimental {
version := opts.ProjectDescriptor.Project.Version
sourceURL := opts.ProjectDescriptor.Project.SourceURL
if version != "" || sourceURL != "" {
projectMetadata.Source = &platform.ProjectSource{
Type: "project",
Version: map[string]interface{}{"declared": version},
Metadata: map[string]interface{}{"url": sourceURL},
}
}
}

lifecycleOpts := build.LifecycleOptions{
AppPath: appPath,
Image: imageRef,
Builder: ephemeralBuilder,
LifecycleImage: ephemeralBuilder.Name(),
RunImage: runImageName,
ProjectMetadata: platform.ProjectMetadata{Source: &platform.ProjectSource{
Type: "project",
Version: map[string]interface{}{"declared": version},
Metadata: map[string]interface{}{"url": sourceURL},
}},
ProjectPath: "",
AppPath: appPath,
Image: imageRef,
Builder: ephemeralBuilder,
LifecycleImage: ephemeralBuilder.Name(),
RunImage: runImageName,
ProjectMetadata: projectMetadata,
ClearCache: opts.ClearCache,
Publish: opts.Publish,
TrustBuilder: opts.TrustBuilder,
Expand Down
66 changes: 66 additions & 0 deletions build_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (
"github.com/buildpacks/imgutil/local"
"github.com/buildpacks/imgutil/remote"
"github.com/buildpacks/lifecycle/api"
"github.com/buildpacks/lifecycle/platform"
"github.com/docker/docker/client"
"github.com/google/go-containerregistry/pkg/name"
"github.com/heroku/color"
Expand Down Expand Up @@ -1526,6 +1527,71 @@ func testBuild(t *testing.T, when spec.G, it spec.S) {
})
})

when("ProjectDescriptor", func() {
when("project metadata", func() {
when("not experimental", func() {
it("does not set project source", func() {
err := subject.Build(context.TODO(), BuildOptions{
Image: "some/app",
Builder: defaultBuilderName,
ClearCache: true,
ProjectDescriptor: projectTypes.Descriptor{
Project: projectTypes.Project{
Version: "1.2.3",
SourceURL: "https://example.com",
},
},
})

h.AssertNil(t, err)
h.AssertNil(t, fakeLifecycle.Opts.ProjectMetadata.Source)
})
})

when("is experimental", func() {
it.Before(func() {
subject.experimental = true
})

when("missing information", func() {
it("does not set project source", func() {
err := subject.Build(context.TODO(), BuildOptions{
Image: "some/app",
Builder: defaultBuilderName,
ClearCache: true,
ProjectDescriptor: projectTypes.Descriptor{},
})

h.AssertNil(t, err)
h.AssertNil(t, fakeLifecycle.Opts.ProjectMetadata.Source)
})
})

it("sets project source", func() {
err := subject.Build(context.TODO(), BuildOptions{
Image: "some/app",
Builder: defaultBuilderName,
ClearCache: true,
ProjectDescriptor: projectTypes.Descriptor{
Project: projectTypes.Project{
Version: "1.2.3",
SourceURL: "https://example.com",
},
},
})

h.AssertNil(t, err)
h.AssertNotNil(t, fakeLifecycle.Opts.ProjectMetadata.Source)
h.AssertEq(t, fakeLifecycle.Opts.ProjectMetadata.Source, &platform.ProjectSource{
Type: "project",
Version: map[string]interface{}{"declared": "1.2.3"},
Metadata: map[string]interface{}{"url": "https://example.com"},
})
})
})
})
})

when("Env option", func() {
it("should set the env on the ephemeral builder", func() {
h.AssertNil(t, subject.Build(context.TODO(), BuildOptions{
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ require (
github.com/buildpacks/lifecycle v0.11.4
github.com/docker/docker v20.10.8+incompatible
github.com/docker/go-connections v0.4.0
github.com/gdamore/tcell/v2 v2.3.3
github.com/gdamore/tcell/v2 v2.4.0
github.com/ghodss/yaml v1.0.0
github.com/golang/mock v1.6.0
github.com/google/go-cmp v0.5.6
Expand All @@ -21,7 +21,7 @@ require (
github.com/moby/term v0.0.0-20201110203204-bea5bbe245bf // indirect
github.com/onsi/gomega v1.16.0
github.com/opencontainers/image-spec v1.0.1
github.com/pelletier/go-toml v1.9.3
github.com/pelletier/go-toml v1.9.4
github.com/pkg/errors v0.9.1
github.com/rivo/tview v0.0.0-20210624165335-29d673af0ce2
github.com/sabhiram/go-gitignore v0.0.0-20201211074657-223ce5d391b0
Expand Down
Loading

0 comments on commit 09596bd

Please sign in to comment.