Closed zbynek closed 10 months ago
This is a weird error: not sure why the build is trying to temper with /opt
:
.cache
directory should be at the project root: not sure why is it trying to copy its content somewhere else 🤔 It looks like we have a divergence between Jenkinsfile
(on ci.jenkins.io) and Jenkinsfile_k8s
(infra.ci.jenkins.io). Maybe trying to merge them both could help to have the same behavior (or at least clostest possible).
But using a docker image requires VM agent which is annoying: I guess we should find a way to understand the technical stack here (NPM + gastby + babel + webpack + other sutff)?
Ping @NotMyFault @halkeye if this error rings a bell ?
Even weirder:
master
branch build worked on infra.ci (built successfully 2 hours ago): https://github.com/jenkins-infra/plugin-site/blob/ca86de593d0716c5270afc63d9c85c23e989954b/Jenkinsfile_k8s#L93-L107Some related issues on the internet:
=> looks like there is "something" in this technical stack which want to write into /opt
while it should not (or at least should be configurable)
Nothing i'm aware of that writes to /opt/build. This feels like an env, or lack of env problem.
Nothing in my greps really stand out, except maybe TMPDIR?
I did look for .cache too, and for the most part its path.join(process.cwd, '.cache')
which could produce this if /opt/build is pwd, but i don't think it can be.
path.join(store.getState().program.directory,
public)
is a maybe though.
directoryPath(path.join(
.cache,
gatsby-browser-entry.js))
i'd have to go look at the non minified github though
@halkeye another weird thing is that the wrong path is build/cache/cwd/.cache/api-runner-browser-plugins.js
so it looks like escaping problem with cwd
where something prints "cwd" as string literal instead of process.cwd
... not sure if that helps in any way though 🤷
Thanks folks, I'm gonna replay some builds to see what I can get from the environmenet during the build.
If we can't get something in 2 days, and if it ok for you, I'll unify the build tasks to make it work like on ci.jenkins.io
@dduportal thanks, merging the Jenkinsfiles was also suggested in https://github.com/jenkins-infra/plugin-site/issues/1377
@dduportal thanks, merging the Jenkinsfiles was also suggested in [jenkins-infra/plugin-site#1377](https://github.com/jenkins-infra/plugin-site/issues/1377
Thanks for the pointer! I did not see the issue earlier, however it is annoying having to spin up a VM instead of a pod to build a static website (that seems overkill, hence the initial reluctance). But we have to unblock this so let's consider the option
Started taking a look at it, tested a replay without NETLIFY = "true"
(one of the two env vars only in PR steps not main branch build), it passed: https://infra.ci.jenkins.io/job/website-jobs/job/plugin-site/view/change-requests/job/PR-1558/6/
I've opened a test PR: https://github.com/jenkins-infra/plugin-site/pull/1559/
The build currently fails on ci.jenkins.io pull request jobs too: https://ci.jenkins.io/job/Infra/job/plugin-site/job/PR-1559/1/execution/node/57/log/
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: success Writing page-data.json and slice-data.json files to public directory - 3.282s - 9808/9808 2988.18/s
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: error Truncated page data information for the failed page "/ostorlab/issues/": {
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: "errors": {},
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: "path": "/ostorlab/issues/",
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: "slicesMap": {},
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: "pageContext": {
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: "name": "ostorlab"
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: }
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: }
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: failed Building static HTML for pages - 9.952s
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: error Building static HTML failed for path "/ostorlab/issues/"
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]:
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: 19 | import PluginPageTabs from '../components/PluginPageTabs';
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: 20 |
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: > 21 | function shouldShowWikiUrl({url}) {
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: | ^
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: 22 | return url?.startsWith('https://wiki.jenkins-ci.org/') ||
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: 23 | url?.startsWith('https://wiki.jenkins.io/') ||
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: 24 | url?.includes('github.com/jenkins-infra/plugins-wiki-docs') ||
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]:
➤ YN0000: [@jenkins-cd/jenkins-plugin-site]: WebpackError: TypeError: Cannot destructure property 'url' of 'object null' as it is null.
Still investigating, builds are quite flaky...
At least I've got successful builds on ci.jenkins.io without Docker!
Update: confirmed that the issue comes from Gatsby when NETLIFY
is set to true while working on #3809 which had the same permission error.
As removing this environment variable doesn't prevent Netlify previews, and as I managed to get a build on ci.jenkins.io completed without Docker, the next step will be the unification of plugin-site Jenkinsfiles.
Removing NETLIFY
from infra.ci.jenkins.io plugin-site pipeline right now to resolve this issue and restore builds and previews, I'll deal with the unification later.
its actually just a variable to make a netlify banner show up, which isn't even a requirement for the free stuff they provided, you can just remove the env variable.
Service(s)
infra.ci.jenkins.io
Summary
The PR builds are failing with
e.g. https://infra.ci.jenkins.io/job/website-jobs/job/plugin-site/job/PR-1556/4/display/redirect
Reproduction steps
Check the PR builds for the plugin site -- I guess the error is the same for all of them but cannot verify (thanks @NotMyFault for obtaining that error message)