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

release tools #156

Merged
merged 21 commits into from
Feb 14, 2019
Merged

release tools #156

merged 21 commits into from
Feb 14, 2019

Conversation

pohly
Copy link
Contributor

@pohly pohly commented Jan 24, 2019

This syncs the build rules with the other kubernetes-csi repos.

spiffxp and others added 15 commits January 16, 2019 10:47
The repo was created with an HTML version of the build.make file from
https://github.com/pohly/csi-build-rules/. Here's the raw file.
It's worth calling out explicitly that only the master branch is
maintained.
The actual repository was not named like the prototype repo.
Copy-and-paste error from the time when the
kubernetes-csi/csi-release-tools repo didn't have the code...
README.md: fix repo URL for initial setup
The goal is to enforce that changes get merged upstream first and only
get into the local repo via a normal "git subtree merge".
"make test" used to abort after the first test failure. That was
partly intentional: if the simple tests already fail (for example,
because of a syntax error), then there is no point in continuing to
test.

However, it also makes it harder to find all errors in a CI system
when the errors are unrelated (first error shows up, gets fixed, next
error shows up, etc.).

Now "make test" still aborts early, but "make -k test" is used in the
CI and will run all individual tests because they are split up into
different targets.
We don't want to allow local modifications in the subtree. Everything
should go to the csi-release-tools repo first.
This may or may not work, depending on which packages have tests and
whether they contain glog.
Individual repos may have to filter out certain packages from
testing. For example, in csi-test the cmd/csi-sanity directory
contains a special test that depends on additional parameters that set
the CSI driver to test against.
@k8s-ci-robot k8s-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Jan 24, 2019
pohly added 2 commits January 25, 2019 11:48
After merging into external-attacher, the next Travis CI run did not
push the "canary" image because the check for "canary" only covered
the case where "-canary" is used as
suffix (https://travis-ci.org/kubernetes-csi/external-attacher/builds/484095261).
The introduction for each individual test looked like an actual
command:

  test-subtree
  ./release-tools/verify-subtree.sh release-tools
  Directory 'release-tools' contains non-upstream changes:
  ...

It's better to make it look like a shell comment and increase its
visibility with a longer prefix:

  ### test-subtree:
  ./release-tools/verify-subtree.sh release-tools
  ...
@pohly
Copy link
Contributor Author

pohly commented Jan 25, 2019

/hold
Need to update the PR with a fix for publishing "canary" once merged into master (kubernetes-csi/csi-release-tools#4) and also get the local release--tools changes upstream (kubernetes-csi/csi-release-tools#5).

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jan 25, 2019
build.make: fix pushing of "canary" image from master branch
@pohly
Copy link
Contributor Author

pohly commented Jan 25, 2019

/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jan 25, 2019
@bswartz
Copy link
Contributor

bswartz commented Feb 6, 2019

/lgtm

@k8s-ci-robot
Copy link
Contributor

@bswartz: changing LGTM is restricted to assignees, and only kubernetes-csi/csi-test repo collaborators may be assigned issues.

In response to this:

/lgtm

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

…631f2'

git-subtree-dir: release-tools
git-subtree-mainline: d400bcc
git-subtree-split: 33d58fd
This switches building over to the shared csi-sanity-tools, which
makes it simpler to keep building in the different repos in sync. For
example, this now bumps the Go version to 1.11.1.

For this to work, some files must be moved around to match the
expected layout.
@pohly
Copy link
Contributor Author

pohly commented Feb 11, 2019

Rebased because of the merge conflict with 4df3ede

@pohly
Copy link
Contributor Author

pohly commented Feb 12, 2019

The new check actually works as intended:

### test-vet:
go vet `go list ./... | grep -v vendor `
# github.com/kubernetes-csi/csi-test/mock/service
mock/service/controller.go:511: Entry.Infof format %s has arg requestBytes of wrong type int64
make: *** [test-vet] Error 2

I need to fix the code before enforcing this check.

@pohly
Copy link
Contributor Author

pohly commented Feb 13, 2019

PR #166 has to be merged first to get a clean test result.


Cheat sheet:

- `git subtree add --prefix=release-tools https://github.com/kubernetes-csi/csi-release-tools.git master` - add release tools to a repo which does not have them yet (only once)
Copy link
Member

Choose a reason for hiding this comment

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

I have to be honest about this, I feel this is really overkill for this project and is quite different from a normal git release process.

I'm concerned that I am going to mess something up (that's my biggest concern)

@@ -0,0 +1,5 @@
# Release Process

No tagged releases are planned at this point. The intention is to keep
Copy link
Member

Choose a reason for hiding this comment

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

Should this have the explanation on how to use this, or is it the README.md that we should follow?

docker tag $*:latest $(IMAGE_NAME):$$tag; \
docker push $(IMAGE_NAME):$$tag; \
}; \
for tag in $(IMAGE_TAGS); do \
Copy link
Member

Choose a reason for hiding this comment

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

To me this is almost magic. I am concerned with the maintenance of these tools and scripts. I feel only the author can maintain it and that is concerning.

@lpabon
Copy link
Member

lpabon commented Feb 14, 2019

After an offline discussion on #wg-csi @pohly and @msau42 will maintain this code.

@lpabon
Copy link
Member

lpabon commented Feb 14, 2019

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Feb 14, 2019
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: lpabon, pohly

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot merged commit d6050bc into kubernetes-csi:master Feb 14, 2019
suneeth51 pushed a commit to suneeth51/csi-test that referenced this pull request Sep 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants