GithubHelp home page GithubHelp logo

ci-helpers's Introduction

IPFS is an open system to manage data without a central server

Check out our website at ipfs.tech.

For papers on IPFS, please see the Academic Papers section of the IPFS Docs.

License

MIT.

ci-helpers's People

Contributors

coderlane avatar hsanjuan avatar ipfs-mgmt-read-write[bot] avatar kevina avatar kubuxu avatar lanzafame avatar raulk avatar stebalien avatar web-flow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ci-helpers's Issues

Notes on standard .travis.yml file compenets

Most but not all the existing .travis.yml have this:

cache:
  directories:
    - $GOPATH/src/gx

notifications:
  email: false

If there where there I left it, if not, I didn't add it (for the most part).

Also some projects have:

sudo: false

I left this one alone, but wondering why some have it and not others. The projects that have it in libp2p:

./go-libp2p-pnet/.travis.yml:sudo: false
./go-libp2p-netutil/.travis.yml:sudo: false
./go-peerstream/.travis.yml:sudo: false
./go-libp2p-swarm/.travis.yml:sudo: false
./go-libp2p-transport/.travis.yml:sudo: false
./go-ws-transport/.travis.yml:sudo: false
./go-libp2p-crypto/.travis.yml:sudo: true
./go-testutil/.travis.yml:sudo: false
./go-libp2p-peer/.travis.yml:sudo: false
./go-libp2p-secio/.travis.yml:sudo: false
./go-libp2p-loggables/.travis.yml:sudo: false
./go-reuseport/.travis.yml:sudo: false

gofmt

It would be nice to also fail tests if go fmt ./... lists any files as being modified (formatted).

Fix repo permissions

  • Give write permissions to the go team.
  • Give admin permissions to the Admin team.
  • Remove any other permissions.

travis ci script doesn't work with go modules

The script outputs the following log and error:

$ bash <(curl -s https://raw.githubusercontent.com/ipfs/ci-helpers/master/travis-ci/run-standard-tests.sh)
*** cd /tmp/tmp.bMIKMLkCCH
*** git -c advice.detachedHead=false clone -q -s /home/travis/gopath/src/github.com/libp2p/go-libp2p-secio .
*** go fmt ./...
*** cd /home/travis/gopath/src/github.com/libp2p/go-libp2p-secio
*** go vet ./...
*** Setting up test environment
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.all.disable_ipv6 = 0
*** go build github.com/libp2p/go-libp2p-secio/v3
go: cannot find main module; see 'go help modules'

Source: https://travis-ci.org/libp2p/go-libp2p-secio/jobs/485661465

Orb environment doesn't play nice with CGO

  • The orb environment does not include gcc in the images, but also does not set CGO_ENABLED=0.
  • https://github.com/libp2p/go-libp2p-quic-transport makes use of github.com/klauspost/compress among other dependencies which default to attempting CGO compilation unless explicitly disabled.
  • This leads to failures of the form:
    loadinternal: cannot find runtime/cgo
    /usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
    /bin/ld: cannot find crti.o: No such file or directory
    /bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/9/libgcc.a when searching for -lgcc
    /bin/ld: cannot find -lgcc
    

Do we think we can safely update the orb environment to either include CGO_ENABLED=0 or to provide a parameter for consumers to do so?

Add GOVETFLAGS

In some cases, we're not going to be able to fix all go vet errors and may need to disable some checks. Ideally, we'd just be able to silence specific issues but, we'll, we're dealing with the go devs here.

use a GitHub Action to distribute standard workflow templates across participating repos

We can use GitHub actions to

  1. Create self-contained template workflows that repositories across the org can use (as a first step for unit testing, later maybe also for linting).
  2. Use GitHub Actions to automatically create PRs in all participating repositories every time we make a change to those workflows. This solves the two main problems with our current setup:
    1. It ensures consistent and up-to-date workflows across all participating repositories.
    2. It makes sure that test failures resulting from a change to the workflow are surfaced immediately.

The current plan is to use this repository for a unit testing template, and use that workflow in some IPLD repositories first to gain some experience, and roll this out to other projects later.

See https://docs.google.com/document/d/1O0vFKxTNv9-JvfETAPUexY--93dC_7l3ZaPzIey-3c0/edit?usp=sharing for details.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.