Skip to content

Commit 71d41b2

Browse files
Ryan Moranryanmoran
authored andcommitted
Fixes packaging and integration tests
1 parent f91d519 commit 71d41b2

5 files changed

Lines changed: 70 additions & 72 deletions

File tree

integration.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"mri": "github.com/paketo-community/mri",
3+
"bundler": "github.com/paketo-community/bundler",
4+
"bundle-install": "github.com/paketo-community/bundle-install"
5+
}

integration/init_test.go

Lines changed: 42 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,71 @@
11
package integration_test
22

33
import (
4-
"bytes"
5-
"fmt"
4+
"encoding/json"
5+
"os"
66
"path/filepath"
7-
"strings"
87
"testing"
98
"time"
109

11-
"github.com/cloudfoundry/dagger"
12-
"github.com/paketo-buildpacks/packit/pexec"
10+
"github.com/paketo-buildpacks/occam"
1311
"github.com/sclevine/spec"
1412
"github.com/sclevine/spec/report"
1513

1614
. "github.com/onsi/gomega"
1715
)
1816

19-
var (
20-
rackupBuildpack string
21-
mriBuildpack string
22-
bundlerBuildpack string
23-
bundleInstallBuildpack string
24-
)
17+
var settings struct {
18+
Buildpacks struct {
19+
Rackup struct {
20+
Online string
21+
}
22+
MRI struct {
23+
Online string
24+
}
25+
Bundler struct {
26+
Online string
27+
}
28+
BundleInstall struct {
29+
Online string
30+
}
31+
}
32+
33+
Config struct {
34+
MRI string `json:"mri"`
35+
Bundler string `json:"bundler"`
36+
BundleInstall string `json:"bundle-install"`
37+
}
38+
}
2539

2640
func TestIntegration(t *testing.T) {
2741
Expect := NewWithT(t).Expect
2842

29-
root, err := filepath.Abs("./..")
43+
file, err := os.Open("../integration.json")
3044
Expect(err).NotTo(HaveOccurred())
3145

32-
rackupBuildpack, err = dagger.PackageBuildpack(root)
46+
Expect(json.NewDecoder(file).Decode(&settings.Config)).To(Succeed())
47+
Expect(file.Close()).To(Succeed())
48+
49+
root, err := filepath.Abs("./..")
3350
Expect(err).NotTo(HaveOccurred())
3451

35-
// HACK: we need to fix dagger and the package.sh scripts so that this isn't required
36-
rackupBuildpack = fmt.Sprintf("%s.tgz", rackupBuildpack)
52+
buildpackStore := occam.NewBuildpackStore()
53+
54+
settings.Buildpacks.Rackup.Online, err = buildpackStore.Get.
55+
WithVersion("1.2.3").
56+
Execute(root)
57+
Expect(err).NotTo(HaveOccurred())
3758

38-
mriBuildpack, err = dagger.GetLatestCommunityBuildpack("paketo-community", "mri")
59+
settings.Buildpacks.MRI.Online, err = buildpackStore.Get.
60+
Execute(settings.Config.MRI)
3961
Expect(err).NotTo(HaveOccurred())
4062

41-
bundlerBuildpack, err = dagger.GetLatestCommunityBuildpack("paketo-community", "bundler")
63+
settings.Buildpacks.Bundler.Online, err = buildpackStore.Get.
64+
Execute(settings.Config.Bundler)
4265
Expect(err).NotTo(HaveOccurred())
4366

44-
bundleInstallBuildpack, err = dagger.GetLatestCommunityBuildpack("paketo-community", "bundle-install")
67+
settings.Buildpacks.BundleInstall.Online, err = buildpackStore.Get.
68+
Execute(settings.Config.BundleInstall)
4569
Expect(err).NotTo(HaveOccurred())
4670

4771
SetDefaultEventuallyTimeout(10 * time.Second)
@@ -50,44 +74,5 @@ func TestIntegration(t *testing.T) {
5074
suite("SimpleApp", testSimpleApp)
5175
suite("SinatraApp", testSinatraApp)
5276

53-
defer AfterSuite(t)
5477
suite.Run(t)
5578
}
56-
57-
func AfterSuite(t *testing.T) {
58-
var Expect = NewWithT(t).Expect
59-
60-
Expect(dagger.DeleteBuildpack(rackupBuildpack)).To(Succeed())
61-
Expect(dagger.DeleteBuildpack(mriBuildpack)).To(Succeed())
62-
Expect(dagger.DeleteBuildpack(bundlerBuildpack)).To(Succeed())
63-
Expect(dagger.DeleteBuildpack(bundleInstallBuildpack)).To(Succeed())
64-
}
65-
66-
func GetGitVersion() (string, error) {
67-
gitExec := pexec.NewExecutable("git")
68-
revListOut := bytes.NewBuffer(nil)
69-
70-
err := gitExec.Execute(pexec.Execution{
71-
Args: []string{"rev-list", "--tags", "--max-count=1"},
72-
Stdout: revListOut,
73-
})
74-
75-
if revListOut.String() == "" {
76-
return "0.0.0", nil
77-
}
78-
79-
if err != nil {
80-
return "", err
81-
}
82-
83-
stdout := bytes.NewBuffer(nil)
84-
err = gitExec.Execute(pexec.Execution{
85-
Args: []string{"describe", "--tags", strings.TrimSpace(revListOut.String())},
86-
Stdout: stdout,
87-
})
88-
if err != nil {
89-
return "", err
90-
}
91-
92-
return strings.TrimSpace(strings.TrimPrefix(stdout.String(), "v")), nil
93-
}

integration/simple_app_test.go

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,12 @@ func testSimpleApp(t *testing.T, context spec.G, it spec.S) {
5959

6060
var logs fmt.Stringer
6161
image, logs, err = pack.WithNoColor().Build.
62-
WithBuildpacks(mriBuildpack, bundlerBuildpack, bundleInstallBuildpack, rackupBuildpack).
62+
WithBuildpacks(
63+
settings.Buildpacks.MRI.Online,
64+
settings.Buildpacks.Bundler.Online,
65+
settings.Buildpacks.BundleInstall.Online,
66+
settings.Buildpacks.Rackup.Online,
67+
).
6368
WithNoPull().
6469
Execute(name, source)
6570
Expect(err).NotTo(HaveOccurred(), logs.String())
@@ -82,11 +87,8 @@ func testSimpleApp(t *testing.T, context spec.G, it spec.S) {
8287
Expect(err).NotTo(HaveOccurred())
8388
Expect(string(content)).To(ContainSubstring("Hello world!"))
8489

85-
buildpackVersion, err := GetGitVersion()
86-
Expect(err).NotTo(HaveOccurred())
87-
8890
Expect(logs).To(ContainLines(
89-
fmt.Sprintf("Rackup Buildpack %s", buildpackVersion),
91+
"Rackup Buildpack 1.2.3",
9092
" Writing start command",
9193
` bundle exec rackup -p "${PORT:-9292}"`,
9294
))
@@ -101,7 +103,12 @@ func testSimpleApp(t *testing.T, context spec.G, it spec.S) {
101103

102104
var logs fmt.Stringer
103105
image, logs, err = pack.WithNoColor().Build.
104-
WithBuildpacks(mriBuildpack, bundlerBuildpack, bundleInstallBuildpack, rackupBuildpack).
106+
WithBuildpacks(
107+
settings.Buildpacks.MRI.Online,
108+
settings.Buildpacks.Bundler.Online,
109+
settings.Buildpacks.BundleInstall.Online,
110+
settings.Buildpacks.Rackup.Online,
111+
).
105112
WithNoPull().
106113
Execute(name, source)
107114
Expect(err).NotTo(HaveOccurred(), logs.String())
@@ -121,11 +128,8 @@ func testSimpleApp(t *testing.T, context spec.G, it spec.S) {
121128
Expect(err).NotTo(HaveOccurred())
122129
Expect(string(content)).To(ContainSubstring("Hello world!"))
123130

124-
buildpackVersion, err := GetGitVersion()
125-
Expect(err).NotTo(HaveOccurred())
126-
127131
Expect(logs).To(ContainLines(
128-
fmt.Sprintf("Rackup Buildpack %s", buildpackVersion),
132+
"Rackup Buildpack 1.2.3",
129133
" Writing start command",
130134
` bundle exec rackup -p "${PORT:-9292}"`,
131135
))

integration/sinatra_app_test.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,12 @@ func testSinatraApp(t *testing.T, context spec.G, it spec.S) {
5858

5959
var logs fmt.Stringer
6060
image, logs, err = pack.WithNoColor().Build.
61-
WithBuildpacks(mriBuildpack, bundlerBuildpack, bundleInstallBuildpack, rackupBuildpack).
61+
WithBuildpacks(
62+
settings.Buildpacks.MRI.Online,
63+
settings.Buildpacks.Bundler.Online,
64+
settings.Buildpacks.BundleInstall.Online,
65+
settings.Buildpacks.Rackup.Online,
66+
).
6267
WithNoPull().
6368
Execute(name, source)
6469
Expect(err).NotTo(HaveOccurred(), logs.String())
@@ -81,11 +86,8 @@ func testSinatraApp(t *testing.T, context spec.G, it spec.S) {
8186
Expect(err).NotTo(HaveOccurred())
8287
Expect(string(content)).To(ContainSubstring("Hello world!"))
8388

84-
buildpackVersion, err := GetGitVersion()
85-
Expect(err).NotTo(HaveOccurred())
86-
8789
Expect(logs).To(ContainLines(
88-
fmt.Sprintf("Rackup Buildpack %s", buildpackVersion),
90+
"Rackup Buildpack 1.2.3",
8991
" Writing start command",
9092
` bundle exec rackup -p "${PORT:-9292}"`,
9193
))

package.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[buildpack]
2+
uri = "build/buildpack.tgz"

0 commit comments

Comments
 (0)