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

CI / CD for the whole repo #59

Merged
merged 26 commits into from
Oct 25, 2023
Merged

CI / CD for the whole repo #59

merged 26 commits into from
Oct 25, 2023

Conversation

0xJepsen
Copy link
Contributor

@0xJepsen 0xJepsen commented Oct 21, 2023

This adds CI flows and dependancies between them so the right ones can run in parallel. The Following checks were added for the repo

For rust

  • udeps
  • lint
  • fmt
  • install foundry
  • install arbiter
  • install rust
  • test rust

So for example installing arbiter doesn't depend on installing foundry so it can be done at the same time now

For the Mdbook

  • Install katex
  • mdbook test
  • mdbook build

For Solidity

  • forge install
  • forge test

I also added dependabot configurations for us. I noticed the arbiter install still takes a longtime so i am looking into getting a workflow with github for us but still learning how to do that. But once we do it should be a the biggest speedup afaik.

Closes #63
Coses #52

@0xJepsen 0xJepsen marked this pull request as ready for review October 21, 2023 13:32
@0xJepsen 0xJepsen linked an issue Oct 21, 2023 that may be closed by this pull request
@0xJepsen 0xJepsen changed the base branch from guide-documentation to main October 23, 2023 16:31
@0xJepsen 0xJepsen changed the title add yaml CI / CD for the whole repo Oct 23, 2023
break up and parallize arbiter work flow
forge test
solidity
dependabot
toolchain version
book tests and dependancies
version warning migration
book lint
dependancy CI
remove book deploy
clippy
codespell, fmt

build

yaml syntax

yaml fix

yaml fix

path
@0xJepsen
Copy link
Contributor Author

Idk why the arbiter install is failing, im trying to fix it.

@0xJepsen 0xJepsen requested review from Alexangelj, Autoparallel and kinrezC and removed request for Alexangelj and Autoparallel October 24, 2023 21:40
@0xJepsen
Copy link
Contributor Author

Okay so i looked a bit into making reproducible builds with forge and I found that we can fix them so that if there are no contract changes the bindings don't have any contract changes. This is happening with forges default config right now. We can see all config options by typing forge config which will list everything we can configuring in the foundry.toml. I know this is a point of friction if the dev cycle giving our tooling and am open to discussing more ways to iron it out.

One reason why i think it's kinda important is that if someone is using arbiter (kinda what we are selling in some sense) and we expect them to ignore bindings, it will break all their CI which is not a good look. I did look into something like this: https://github.com/foundry-rs/foundry-toolchain but decided a simple solution would be better for now.

Copy link
Contributor

@Autoparallel Autoparallel left a comment

Choose a reason for hiding this comment

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

bindings

jobs:
install:
name: Install and Test
runs-on: ubuntu-latest
Copy link
Contributor

Choose a reason for hiding this comment

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

maybe we should use macos here? has more cores so it might be faster and it's more true to what most of the folks on our team run


fmt:
name: fmt
runs-on: ubuntu-latest
Copy link
Contributor

Choose a reason for hiding this comment

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

meant to put the macos comment here, probably doesn't make a difference for the other stuff

@0xJepsen 0xJepsen merged commit 8ed0322 into main Oct 25, 2023
8 checks passed
@Alexangelj Alexangelj deleted the book.yaml branch October 31, 2023 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Ship up a nice CI flow for Excalibur Add CI for spelling on this
4 participants