This ensures we keep publishing the same image under both names:
$ ./bin/get-docker-tags.sh $(date -u +%F) 88d88158c master ...chore/rename-to-banana
ipfs/kubo:master-2022-06-21-88d8815
ipfs/go-ipfs:master-2022-06-21-88d8815
ipfs/kubo:master-latest
ipfs/go-ipfs:master-latest
* Add initialization directory support to Docker image
* Add sharness test, fix bugs in init script
Fixed in init script:
- Added some missing quotes around expansions
- Fixed INIT_ARGS to not pass any args if IPFS_PROFILE isn't specified
- Use printf instead of "echo -e"
- Only run scripts in top-level of init dir
- Handle filenames correctly when finding init scripts (by using find + xargs)
* chore: docker cleanup
cleans up containers and images (useful when run on developer machine)
* remove container init documentation from README
There is already IPFS Docker documentation where this should live:
https://docs.ipfs.io/how-to/run-ipfs-inside-docker/
Co-authored-by: Caian <caian@ggaunicamp.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Gus Eggert <gus@gus.dev>
* feat: add block profiling to collect-profiles.sh
* feat: add more profiles to 'ipfs diag profile'
This adds mutex and block profiles, and brings the command up-to-par
with 'collect-profiles.sh', so that we can remove it.
Profiles are also now collected concurrently, which improves the
runtime from (profile_time * num_profiles) to just (profile_time).
Note that this has a backwards-incompatible change, removing
--cpu-profile-time in favor of the more general --profile-time, which
covers all sampling profiles.
* docs(cli): ipfs diag profile
* add CLI flag to select specific diag collectors
Co-authored-by: Marcin Rataj <lidel@lidel.org>
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>