Commit Graph

42 Commits

Author SHA1 Message Date
Marcin Rataj
9faefe316f
refactor(ci): optimize build workflows (#10973)
Some checks are pending
CodeQL / codeql (push) Waiting to run
Docker Check / lint (push) Waiting to run
Docker Check / build (push) Waiting to run
Gateway Conformance / gateway-conformance (push) Waiting to run
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Waiting to run
Go Build / go-build (push) Waiting to run
Go Check / go-check (push) Waiting to run
Go Lint / go-lint (push) Waiting to run
Go Test / go-test (push) Waiting to run
Interop / interop-prep (push) Waiting to run
Interop / helia-interop (push) Blocked by required conditions
Interop / ipfs-webui (push) Blocked by required conditions
Sharness / sharness-test (push) Waiting to run
Spell Check / spellcheck (push) Waiting to run
* ci: optimize build workflows

- use go version from go.mod instead of hardcoding
- group platforms by OS for parallel builds
- remove legacy try-build targets

* fix: checkout before setup-go in all workflows

setup-go needs go.mod to be present, so checkout must happen first

* chore: remove deprecated // +build syntax

go 1.17+ uses //go:build, the old syntax is no longer needed

* simplify: remove nofuse tag from CI workflows

- workflows now rely on platform build constraints
- keep make nofuse target for manual builds
- remove unused appveyor.yml

* ci: remove legacy travis variable and fix gateway-conformance

- remove TRAVIS env variable from 4 workflows
- fix gateway-conformance checkout path to match working-directory
- replace deprecated cache-go-action with built-in setup-go caching
2025-09-19 14:44:38 +02:00
looklose
2fdb997bc5
chore: fix some typos (#10396)
Signed-off-by: looklose <shishuaiqun@yeah.net>
2024-06-03 17:17:58 +02:00
Marcin Rataj
262151f2ed
fix(gw): negative entity-bytes beyond file size (#10320)
fix: https://github.com/ipfs/boxo/pull/523
tests: https://github.com/ipfs/gateway-conformance/releases/tag/v0.5.0
2024-01-25 18:53:10 +01:00
Gus Eggert
1b3e4438fc
chore: upgrade OpenTelemetry dependencies (#9736) 2023-04-05 11:44:14 +00:00
Will Hawkins
6d7ad61747 fix: typo in documentation for install path
By default, `go install` will install go $GOBIN and not $GOPATH/bin. In
most cases there is no functional difference -- `go install` falls
back to $GOPATH/bin when $GOBIN is empty.
2023-03-06 15:50:39 +01:00
Piotr Galar
d4cd414b5e
test: port CircleCI to GH Actions and improve sharness reporting (#9355)
Closes https://github.com/ipfs/kubo/issues/8991
Part of https://github.com/ipfs/kubo/issues/8804
2023-01-14 00:49:52 +01:00
Adin Schmahmann
52c177ced9
feat: go-libp2p 0.16, UnixFS autosharding and go-datastore with contexts (#8563)
* plumb through go-datastore context changes

* update go-libp2p to v0.16.0
* use LIBP2P_TCP_REUSEPORT instead of IPFS_REUSEPORT
* use relay config
* making deprecation notice match the go-ipfs-config key
* docs(config): circuit relay v2
* docs(config): fix links and headers
* feat(config): Internal.Libp2pForceReachability

This switches to config that supports setting and reading
Internal.Libp2pForceReachability OptionalString flag

* use configuration option for static relays

* chore: go-ipfs-config v0.18.0

https://github.com/ipfs/go-ipfs-config/releases/tag/v0.18.0

* feat: circuit v1 migration prompt when Swarm.EnableRelayHop is set (#8559)
* exit when Swarm.EnableRelayHop is set
* docs: Experimental.ShardingEnabled migration

This ensures existing users of global sharding experiment get notified
that the flag no longer works + that autosharding happens automatically.

For people who NEED to keep the old behavior (eg. have no time to
migrate today) there is a note about restoring it with
`UnixFSShardingSizeThreshold`.

* chore: add dag-jose code to the cid command output

* add support for setting automatic unixfs sharding threshold from the config
* test: have tests use low cutoff for sharding to mimic old behavior
* test: change error message to match the current error
* test: Add automatic sharding/unsharding tests (#8547)
* test: refactored naming in the sharding sharness tests to make more sense

* ci: set interop test executor to convenience image for Go1.16 + Node
* ci: use interop master

Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Gus Eggert <gus@gus.dev>
Co-authored-by: Lucas Molas <schomatis@gmail.com>
2021-11-29 19:58:05 +01:00
Michael Muré
c3692a5913 extract the pinner to go-ipfs-pinner and dagutils into go-merkledag 2019-12-02 15:45:44 -05:00
Łukasz Magiera
02f7bc8ced Fix build with go-filestore 2019-07-15 16:02:29 +02:00
Steven Allen
6b0f9f71e0 build: use protoc-gen-* from gomod
Also,

* Make it possible to override the PROTOC binary.
* Remove gx targets.
2019-06-05 10:57:43 -07:00
Steven Allen
ec19d4c54f
Merge pull request #6321 from ipfs/ci/golangci-lint
Add golangci-lint
2019-05-15 13:38:31 -07:00
Dominic Della Valle
fa479f7a8a docs+mk: update guidance for unsupported platforms
License: MIT
Signed-off-by: Dominic Della Valle <ddvpublic@gmail.com>
2019-05-15 15:19:04 -04:00
Steven Allen
037382239d build: switch from megacheck to golangci-lint
(which includes megacheck)

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2019-05-14 09:38:29 -07:00
Christopher Buesser
f31dd2aae6 GOCC implementation & fix in make & build scripts
The usage of a native 'go' command has been replaced with a make &
environment variable $GOCC. This enables building with multiple go
versions on a single machine as documented:
  * https://golang.org/doc/install#extra_versions

This enables the usage of:
```bash
$ make install
$ # OR
$ GOCC=go1.12.3 make install
$ # OR
$ GOCC=go1.12.4 make install
```
And the build and test tools now pick up on this change

 On branch go-version-check
 Changes to be committed:
	modified:   Rules.mk
	modified:   bin/check_go_version
	modified:   bin/dist_get
	modified:   bin/maketarball.sh
	modified:   coverage/Rules.mk
	modified:   mk/golang.mk
	modified:   mk/tarball.mk
License: MIT
Signed-off-by: Chris Buesser <christopher.buesser@gmail.com>
2019-04-30 21:22:43 -04:00
Jakub Sztandera
8c7837962d mk: deprecate install_unsupported, leave a notice
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-03-07 20:16:15 +01:00
Jakub Sztandera
d78717e116 gx: remove gx-deps from deps target
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-03-05 18:33:58 +01:00
Jakub Sztandera
7f80485d93 mk: remove gx from Makefiles
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-03-05 18:33:58 +01:00
Łukasz Magiera
23ddc26025 ci: Coverage and Junit xmls in one run
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-10-29 18:44:49 +01:00
Steven Allen
5ae130dee2 update protobuf files in go-ipfs
Also:

* Switch to gogo for filestore for consistency.
* Use the "faster" codegen for fewer allocations.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-08-15 12:02:21 -07:00
Jeromy
c62b039e2b delete unixfs code...
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2018-08-04 16:08:50 -07:00
Jeromy
28fdee7fce Extract dagservice, move dagutils to top level
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2018-07-28 14:22:20 -07:00
Jeromy
39c5c47c94 Extract bitswap to go-bitswap
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2018-07-27 14:52:56 -07:00
Steven Allen
dafe495376 extract ipns record logic to go-ipns
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-06-15 20:10:26 -07:00
Jakub Sztandera
2535220864 mk: add tarball support
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2018-04-05 19:18:22 +02:00
Steven Allen
5abb3c6025 document test_go_test make target
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-02-07 09:25:55 -08:00
Steven Allen
0e8fc8ffc8 remove useless make target
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-02-04 15:11:09 +01:00
Steven Allen
30b8fa06bb document make targets
fixes #4647

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-02-04 15:11:09 +01:00
Jakub Sztandera
d2cc708650
make(sharness): add plugins as part of sharness build
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-07-12 21:53:59 +02:00
Jakub Sztandera
d6f280ecec
make: fix megacheck being run on help print
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-07-12 21:53:59 +02:00
Jeromy
7203c43b60
plugin: create plugin API and loader, add ipld-git plugin
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-07-12 21:53:59 +02:00
zramsay
ae4cad3ff3 make: use correct location for [test_go_megacheck]
License: MIT
Signed-off-by: Zach Ramsay <zach.ramsay@gmail.com>
2017-06-01 14:04:30 -04:00
zramsay
f9ba45d2eb introduce 'make megacheck'
License: MIT
Signed-off-by: Zach Ramsay <zach.ramsay@gmail.com>
2017-05-31 16:40:55 -04:00
Jeromy
1cddf67a35 remove 'ipfs diag net' from codebase
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-05-11 09:15:37 -07:00
kpcyrd
720ced12b9 Fix install_unsupported for openbsd, add docs
License: MIT
Signed-off-by: kpcyrd <git@rxv.cc>
2017-04-27 01:02:42 +02:00
Jakub Sztandera
bf23a81bb3
make: fix make install not using ldflags for git hash
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-03-27 15:19:40 +02:00
Jeromy Johnson
35283cf05e Merge pull request #3722 from ipfs/make/distclean/pristine
make: use git clean in distclean target
2017-03-01 16:42:17 -08:00
Jakub Sztandera
12d992a6c4
make: use git clean in distclean target
This is the cleanest the repo will get.
If you need to publish it, tar it or anything else like that use
`make distclean`.

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-24 13:39:58 +01:00
Jakub Sztandera
4c86543c5b
make: add install_unsupported
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-22 22:28:07 +01:00
Jakub Sztandera
545f03e9c3
Jenkins CI
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-12 01:18:41 +01:00
Jakub Sztandera
c2d100f0ee
make: run coverage when distclean
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-12 01:18:40 +01:00
Jakub Sztandera
730896c006
make: do not run coverage file unless clean of coverage targets are run
This reduces flat make time by half

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-12 01:18:40 +01:00
Jakub Sztandera
f630222580
make: rework makefiles for non-recursive make and add sharness coverage
This commit introduces non-recursive Makefile infrastructure that replaces current Makefile infrastructure.
It also generally cleanups the Makefiles, separates them into nicer sub-modules and centralizes common operations into single definitions.

It allows to depend on any target that is defined in the makefile, this means that for example `gx install` is called once when `make build test_expensive_sharness` is called instead of 4 or 5 times.

It also makes the dependencies much cleaner and allows for reuse of modules. For example sharness coverage collection (WIP) uses sharness target with amended PATH, previously it might have been possible but not without wiring in the coverage collection into sharness make runner code.

Yes, it is more complex but not much more. There are few rules that have to be followed and few complexities added but IMHO it is worth it.

How to NR-make:
1. If make is to generate some file via a target, it MUST be defined in Rules.mk file in the directory of the target.
2. `Rules.mk` file MUST have `include mk/header.mk` statement as the first line and `include mk/footer.mk` statement as the last line (apart from project root `Rules.mk`).
3. It then MUST be included by the closest `Rules.mk` file up the directory tree.
4. Inside a `Rules.mk` special variable accessed as `$(d)` is defined. Its value is current directory, use it so if the `Rules.mk` file is moved in the tree it still works without a problem. Caution: this variable is not available in the recipe part and MUST NOT be used. Use name of the target or prerequisite to extract it if you need it.
5. Make has only one global scope, this means that name conflicts are a thing. Names SHOULD  follow `VAR_NAME_$(d)` convention. There are exceptions from this rule in form of well defined global variables. Examples: General lists `TGT_BIN`, `CLEAN`; General targets: `TEST`, `COVERAGE`; General variables: `GOFLAGS`, `DEPS_GO`.
3. Any rules, definitions or variables that fit some family SHOULD be defined in `mk/$family.mk` file and included from project root `Rules.mk`

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-12 01:18:40 +01:00