[in] create /version file based on git tag name

This commit is contained in:
Dr Nic Williams
2015-04-25 12:46:22 -07:00
parent f224bc5a45
commit 5779770b0b
4 changed files with 32 additions and 2 deletions

View File

@@ -28,7 +28,10 @@ Fetches artifacts from the given release version. If the version is not
specified, the latest version is chosen using [semver](http://semver.org) specified, the latest version is chosen using [semver](http://semver.org)
semantics. semantics.
Creates a file `tag` containing the tag name/version of the release being fetched. Also creates the following files:
* `tag` containing the git tag name of the release being fetched.
* `version` containing the version determined by the git tag of the release being fetched.
#### Parameters #### Parameters

View File

@@ -65,6 +65,13 @@ func (c *InCommand) Run(destDir string, request InRequest) (InResponse, error) {
return InResponse{}, err return InResponse{}, err
} }
version := determineVersionFromTag(*foundRelease.TagName)
versionPath := filepath.Join(destDir, "version")
err = ioutil.WriteFile(versionPath, []byte(version), 0644)
if err != nil {
return InResponse{}, err
}
assets, err := c.github.ListReleaseAssets(foundRelease) assets, err := c.github.ListReleaseAssets(foundRelease)
if err != nil { if err != nil {
return InResponse{}, err return InResponse{}, err

View File

@@ -236,7 +236,7 @@ var _ = Describe("In Command", func() {
)) ))
}) })
It("stores tag in a file", func() { It("stores git tag in a file", func() {
_, err := os.Stat(filepath.Join(destDir, "tag")) _, err := os.Stat(filepath.Join(destDir, "tag"))
Ω(err).ShouldNot(HaveOccurred()) Ω(err).ShouldNot(HaveOccurred())
@@ -246,6 +246,16 @@ var _ = Describe("In Command", func() {
Ω(string(tag)).Should(Equal("v0.35.0")) Ω(string(tag)).Should(Equal("v0.35.0"))
}) })
It("stores version in a file", func() {
_, err := os.Stat(filepath.Join(destDir, "version"))
Ω(err).ShouldNot(HaveOccurred())
version, err := ioutil.ReadFile(filepath.Join(destDir, "version"))
Ω(err).ShouldNot(HaveOccurred())
Ω(string(version)).Should(Equal("0.35.0"))
})
It("fetches from the latest release", func() { It("fetches from the latest release", func() {
_, err := os.Stat(filepath.Join(destDir, "example.txt")) _, err := os.Stat(filepath.Join(destDir, "example.txt"))
Ω(err).ShouldNot(HaveOccurred()) Ω(err).ShouldNot(HaveOccurred())

10
versions.go Normal file
View File

@@ -0,0 +1,10 @@
package resource
import "regexp"
// determineVersionFromTag converts git tags v1.2.3 into semver 1.2.3 values
func determineVersionFromTag(tag string) string {
re := regexp.MustCompile("v?([^v].*)")
matches := re.FindStringSubmatch(tag)
return matches[1]
}