Comments (6)
This will be fixed as a side-effect of #285.
from ocaml-ci.
Yes, this sounds like a good thing to add. I think a general 'lint promote' step to check that no promotions occur would be useful. This has to also do a git diff, since opam file generation is a special case that is not a dune promote
candidate.
from ocaml-ci.
We don't have a git checkout, so it's not quite as simple as git --exit-code
to implement this.
One cheap and cheerful way would be to chmod the source directory to be read-only. It looks like BuildKit got support for this 24 days ago, so need to check if it's made its way into a docker release near us first... moby/buildkit#1492
from ocaml-ci.
We don't have a git checkout
I've no clue about the internals, but my intuition is that ocaml-ci/ocurrent uses a git clone
of a remote repository for conducting its work. Now, if you don't have a git checkout, I fail to understand how ocaml-ci is supposed to work. You could copy the directory before build and do a recursive diff after build.
from ocaml-ci.
ocaml-ci builds a Dockerfile that's incremental, so it copies in the source tree as it builds up layers. For example it starts with the opam
files, analyses metadata, installs depexts, then adds the sources, then does a dune build. This way if you just modify OCaml code, the depext phase and earlier can be cached since they will not have changed.
It therefore never has a full git checkout in the Dockerfile. I ran a quick test and chmod -R 400
of the source tree works fine. You get a permission denied error when dune tries to modify the source tree -- the only time it does this is to write a .merlin file or to update opam files, so it should be safe for the CI to do and won't disturb caching.
from ocaml-ci.
Looks like this one can be closed thanks to opam-dune-lint
:-)
from ocaml-ci.
Related Issues (20)
- CI failure HOT 3
- UX HOT 5
- SLA / service outage HOT 5
- EXPERIMENTAL: (lint-opam) (failure: No *.opam files found!)
- Web UI reports "Oops! Internal Server Error" when job hasn't started yet
- Missing `.ocamlformat` version line causes analysis failure HOT 1
- failed: Failed to get head of ocaml/opam-repository:refs/heads/master HOT 1
- CI failure on 5.1 32-bit builders HOT 1
- OCaml 5.2 support HOT 2
- Add additional opam-repository / Dockerfile customization? HOT 3
- Naming of builders
- FreeBSD CI failures HOT 8
- debian-12 x86_32 workers fail due to old capnproto version HOT 6
- `lint-doc` job failing on installation of `conf-git` HOT 1
- `lint-fmt` job fails with "Error: Program ocamlformat not found in the tree or in PATH" HOT 3
- Web UI doesn't show log output, but CLI does
- `lint-fmt` failing with file permission error HOT 3
- Promote FreeBSD and MacOS to non-exprimental HOT 3
- HTTP 500 error on CI run HOT 2
- Local Opam Vars Job Causing Outages HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ocaml-ci.