Specifically, if you specify a commit, you get only that commit. This
means you get _nothing_ if you specify a merge commit.
Now, we specify to diff between a commit and it's (merge) parent.
1. Allow matching the entire module instead of just github
orgs/usernames.
2. Allow excluding some modules.
3. Ignore files using a github pathspec and apply the same ignore
patterns to the "contributors" section.
- add guard for rc releases; publish them to docker hub with the matching git tag
- make the semver regex stricter and only publish as latest when a full semver tag with no pre-release suffix is the name of the git tag.
- add `release` tag as an alias of `latest` as per https://github.com/ipfs/go-ipfs/issues/3999#issuecomment-742228981
Tested manually as the push-docker-tag.sh script is set up for it:
```shell
./push-docker-tags.sh $(date -u +%F) testingsha release v0.9.0-test dry
Nothing to do. No docker tag defined for branch: release, tag: v0.9.0-test
./push-docker-tags.sh $(date -u +%F) testingsha release v0.9.0-rc1 dry
DRY RUN! I would have tagged and pushed the following...
docker tag ipfs/go-ipfs:wip ipfs/go-ipfs:v0.9.0-rc1
docker push ipfs/go-ipfs:v0.9.0-rc1
./push-docker-tags.sh $(date -u +%F) testingsha release v0.9.0 dry
DRY RUN! I would have tagged and pushed the following...
docker tag ipfs/go-ipfs:wip ipfs/go-ipfs:v0.9.0
docker push ipfs/go-ipfs:v0.9.0
DRY RUN! I would have tagged and pushed the following...
docker tag ipfs/go-ipfs:wip ipfs/go-ipfs:latest
docker push ipfs/go-ipfs:latest
DRY RUN! I would have tagged and pushed the following...
docker tag ipfs/go-ipfs:wip ipfs/go-ipfs:release
docker push ipfs/go-ipfs:release
```
fixes#3999
License: MIT
Signed-off-by: Oli Evans <oli@tableflip.io>
Set supported platforms correctly by go version (no darwin-386 for >=1.15, no darwin-arm64 unless
>=1.16), make check-go-version work on mac
License: MIT
Signed-off-by: hannahhoward <hannah@hannahhoward.net>
- use a circleci context to provide dockerhub credentials
- use a yaml alias to reduce repetition for branch filters (thanks @Mr0grog)
- limit docker-push step from test workflow to only run on relevant branches
License: MIT
Signed-off-by: Oli Evans <oli@tableflip.io>
- build in docker in ci so we can see failures.
- tag and push to dockerhub from ci so we have more control and visibility on the process.
Note, docker workflows run on all branches and no tags by default. You need to opt in to having builds trigger when a git tag is pushed. The filter definition to opt in to tags needs to be present on your job and all dependendent jobs, which is dull. See https://circleci.com/docs/2.0/workflows/#executing-workflows-for-a-git-tag
I've recreated the dockerhub autobuild rules we have currently, but it is worthing taking a moment to review them.
License: MIT
Signed-off-by: Oli Evans <oli@tableflip.io>
Due to the bash args used, collect-profiles.sh would fail if which ipfs failed to find an ipfs binary on the path, like when running ipfs in docker.
Fixes that by using a check for the command that wont error if it's not found.
Also
- adds a commment to explains when to use the script and what it does.
- be less chatty. Simpify the output so it's clearer what it's doing. Experts can read the script or set the -x flag themselves.
License: MIT
Signed-off-by: Oli Evans <oli@tableflip.io>
With an empty API headers config like
```js
"API": {
"HTTPHeaders": {}
},
```
running collect-profiles.sh shows connection errors when trying to POST to `/debug/pprof-mutex/` end point when using `localhost`.
The same errors do not occur when using `127.0.0.1`
License: MIT
Signed-off-by: Oli Evans <oli@tableflip.io>
The version of `date` that ships with darwin does not support the `-Iseconds` flag.
Use a pattern with `date` to achieve the same thing but should have better cross platform support.
License: MIT
Signed-off-by: Oli Evans <oli@tableflip.io>