javi-forge 1.23.0 → 1.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ci-local/README.md +2 -2
- package/ci-local/ci-local.ps1 +1 -3
- package/ci-local/ci-local.sh +1 -3
- package/ci-local/docker/elixir.Dockerfile +6 -0
- package/ci-local/docker/go.Dockerfile +7 -0
- package/ci-local/docker/java-gradle.Dockerfile +7 -0
- package/ci-local/docker/java-maven.Dockerfile +7 -0
- package/ci-local/docker/java.Dockerfile +7 -0
- package/ci-local/docker/python.Dockerfile +7 -0
- package/ci-local/docker/rust.Dockerfile +7 -0
- package/dist/lib/docker.js +23 -3
- package/package.json +1 -1
package/ci-local/README.md
CHANGED
|
@@ -174,7 +174,7 @@ Developer workflow:
|
|
|
174
174
|
│ ├── commit-msg # Valida mensaje sin AI attribution
|
|
175
175
|
│ └── pre-push # CI simulation en Docker
|
|
176
176
|
└── docker/
|
|
177
|
-
└── *.Dockerfile #
|
|
177
|
+
└── *.Dockerfile # Incluidos para cada stack (fallback: se regeneran si faltan)
|
|
178
178
|
|
|
179
179
|
lib/ # Dependencia requerida (copiar junto con .ci-local/)
|
|
180
180
|
├── common.sh # Funciones compartidas (Bash)
|
|
@@ -193,7 +193,7 @@ Editar `lib/common.sh` (detección de stack) o `setup_ci_commands()` en `ci-loca
|
|
|
193
193
|
|
|
194
194
|
### Docker image custom
|
|
195
195
|
|
|
196
|
-
Editar los Dockerfiles en `.ci-local/docker/`
|
|
196
|
+
Editar los Dockerfiles en `.ci-local/docker/` (incluidos por stack).
|
|
197
197
|
|
|
198
198
|
## FAQ
|
|
199
199
|
|
package/ci-local/ci-local.ps1
CHANGED
|
@@ -177,7 +177,6 @@ RUN apt-get update && apt-get install -y git curl unzip && rm -rf /var/lib/apt/l
|
|
|
177
177
|
RUN useradd -m -s /bin/bash runner
|
|
178
178
|
USER runner
|
|
179
179
|
WORKDIR /home/runner/work
|
|
180
|
-
ENV GRADLE_USER_HOME=/home/runner/.gradle
|
|
181
180
|
ENTRYPOINT ["/bin/bash", "-c"]
|
|
182
181
|
'@
|
|
183
182
|
}
|
|
@@ -207,8 +206,7 @@ ENTRYPOINT ["/bin/bash", "-c"]
|
|
|
207
206
|
@'
|
|
208
207
|
FROM golang:1.23-bookworm@sha256:167053a2bb901972bf2c1611f8f52c44d5fe7e762e5cab213708d82c421614db
|
|
209
208
|
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
|
|
210
|
-
RUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.62.0 &&
|
|
211
|
-
mv /root/go/bin/golangci-lint /usr/local/bin/
|
|
209
|
+
RUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.62.0 && mv /root/go/bin/golangci-lint /usr/local/bin/
|
|
212
210
|
RUN useradd -m -s /bin/bash runner
|
|
213
211
|
USER runner
|
|
214
212
|
WORKDIR /home/runner/work
|
package/ci-local/ci-local.sh
CHANGED
|
@@ -174,7 +174,6 @@ RUN apt-get update && apt-get install -y git curl unzip && rm -rf /var/lib/apt/l
|
|
|
174
174
|
RUN useradd -m -s /bin/bash runner
|
|
175
175
|
USER runner
|
|
176
176
|
WORKDIR /home/runner/work
|
|
177
|
-
ENV GRADLE_USER_HOME=/home/runner/.gradle
|
|
178
177
|
ENTRYPOINT ["/bin/bash", "-c"]
|
|
179
178
|
DOCKERFILE
|
|
180
179
|
;;
|
|
@@ -204,8 +203,7 @@ DOCKERFILE
|
|
|
204
203
|
cat > "$docker_dir/$DOCKERFILE" << 'DOCKERFILE'
|
|
205
204
|
FROM golang:1.23-bookworm@sha256:167053a2bb901972bf2c1611f8f52c44d5fe7e762e5cab213708d82c421614db
|
|
206
205
|
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
|
|
207
|
-
RUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.62.0 &&
|
|
208
|
-
mv /root/go/bin/golangci-lint /usr/local/bin/
|
|
206
|
+
RUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.62.0 && mv /root/go/bin/golangci-lint /usr/local/bin/
|
|
209
207
|
RUN useradd -m -s /bin/bash runner
|
|
210
208
|
USER runner
|
|
211
209
|
WORKDIR /home/runner/work
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
FROM ubuntu:24.04@sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b
|
|
2
|
+
RUN apt-get update && apt-get install -y git curl && rm -rf /var/lib/apt/lists/*
|
|
3
|
+
RUN useradd -m -s /bin/bash runner
|
|
4
|
+
USER runner
|
|
5
|
+
WORKDIR /home/runner/work
|
|
6
|
+
ENTRYPOINT ["/bin/bash", "-c"]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
FROM golang:1.23-bookworm@sha256:167053a2bb901972bf2c1611f8f52c44d5fe7e762e5cab213708d82c421614db
|
|
2
|
+
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
|
|
3
|
+
RUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.62.0 && mv /root/go/bin/golangci-lint /usr/local/bin/
|
|
4
|
+
RUN useradd -m -s /bin/bash runner
|
|
5
|
+
USER runner
|
|
6
|
+
WORKDIR /home/runner/work
|
|
7
|
+
ENTRYPOINT ["/bin/bash", "-c"]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
ARG JAVA_VERSION=21
|
|
2
|
+
FROM eclipse-temurin:${JAVA_VERSION}-jdk-noble
|
|
3
|
+
RUN apt-get update && apt-get install -y git curl unzip && rm -rf /var/lib/apt/lists/*
|
|
4
|
+
RUN useradd -m -s /bin/bash runner
|
|
5
|
+
USER runner
|
|
6
|
+
WORKDIR /home/runner/work
|
|
7
|
+
ENTRYPOINT ["/bin/bash", "-c"]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
ARG JAVA_VERSION=21
|
|
2
|
+
FROM eclipse-temurin:${JAVA_VERSION}-jdk-noble
|
|
3
|
+
RUN apt-get update && apt-get install -y git curl unzip && rm -rf /var/lib/apt/lists/*
|
|
4
|
+
RUN useradd -m -s /bin/bash runner
|
|
5
|
+
USER runner
|
|
6
|
+
WORKDIR /home/runner/work
|
|
7
|
+
ENTRYPOINT ["/bin/bash", "-c"]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
ARG JAVA_VERSION=21
|
|
2
|
+
FROM eclipse-temurin:${JAVA_VERSION}-jdk-noble
|
|
3
|
+
RUN apt-get update && apt-get install -y git curl unzip && rm -rf /var/lib/apt/lists/*
|
|
4
|
+
RUN useradd -m -s /bin/bash runner
|
|
5
|
+
USER runner
|
|
6
|
+
WORKDIR /home/runner/work
|
|
7
|
+
ENTRYPOINT ["/bin/bash", "-c"]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
FROM python:3.12-slim@sha256:401f6e1a67dad31a1bd78e9ad22d0ee0a3b52154e6bd30e90be696bb6a3d7461
|
|
2
|
+
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
|
|
3
|
+
RUN pip install --no-cache-dir pytest ruff pylint poetry
|
|
4
|
+
RUN useradd -m -s /bin/bash runner
|
|
5
|
+
USER runner
|
|
6
|
+
WORKDIR /home/runner/work
|
|
7
|
+
ENTRYPOINT ["/bin/bash", "-c"]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
FROM rust:1.83-slim@sha256:540c902e99c384163b688bbd8b5b8520e94e7731b27f7bd0eaa56ae1960627ab
|
|
2
|
+
RUN apt-get update && apt-get install -y git pkg-config libssl-dev && rm -rf /var/lib/apt/lists/*
|
|
3
|
+
RUN rustup component add clippy rustfmt
|
|
4
|
+
RUN useradd -m -s /bin/bash runner
|
|
5
|
+
USER runner
|
|
6
|
+
WORKDIR /home/runner/work
|
|
7
|
+
ENTRYPOINT ["/bin/bash", "-c"]
|
package/dist/lib/docker.js
CHANGED
|
@@ -38,6 +38,14 @@ export function getDockerfileContent(stack) {
|
|
|
38
38
|
"RUN apt-get update && apt-get install -y git curl unzip && rm -rf /var/lib/apt/lists/*",
|
|
39
39
|
"RUN useradd -m -s /bin/bash runner",
|
|
40
40
|
"USER runner",
|
|
41
|
+
// No GRADLE_USER_HOME override (audit R4-001): on noble the
|
|
42
|
+
// `ubuntu` user owns uid 1000, so `useradd -m runner` lands at
|
|
43
|
+
// uid 1001 and /home/runner is 0750 runner:runner. Pinning
|
|
44
|
+
// GRADLE_USER_HOME=/home/runner/.gradle hard-fails the TS
|
|
45
|
+
// runtime path, which runs as the HOST uid (ENV-1, typically
|
|
46
|
+
// 1000) and cannot create that dir. Without the env both paths
|
|
47
|
+
// work off $HOME: shell path (--user runner) → /home/runner;
|
|
48
|
+
// host-uid path → getpwuid(1000) → /home/ubuntu.
|
|
41
49
|
"WORKDIR /home/runner/work",
|
|
42
50
|
'ENTRYPOINT ["/bin/bash", "-c"]',
|
|
43
51
|
].join("\n");
|
|
@@ -143,10 +151,22 @@ export async function ensureImage(options) {
|
|
|
143
151
|
path.join(path.dirname(fileURLToPath(import.meta.url)), "../../ci-local/docker");
|
|
144
152
|
dockerfilePath = path.join(dockerDir, `${stack}.Dockerfile`);
|
|
145
153
|
contextDir = dockerDir;
|
|
146
|
-
// Write Dockerfile if it doesn't exist yet (first run)
|
|
147
154
|
if (!(await fs.pathExists(dockerfilePath))) {
|
|
148
|
-
|
|
149
|
-
|
|
155
|
+
if (dockerfilesDir) {
|
|
156
|
+
// Caller-provided generation dir (dev / project-local flow):
|
|
157
|
+
// first-run generation is expected — write the canonical content.
|
|
158
|
+
await fs.ensureDir(dockerDir);
|
|
159
|
+
await fs.writeFile(dockerfilePath, getDockerfileContent(stack), "utf-8");
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
// PKG-002: the package bundles a Dockerfile for EVERY stack, so a
|
|
163
|
+
// miss here means a corrupted/incomplete install. Writing into the
|
|
164
|
+
// install dir would EACCES on root-owned global installs and mask
|
|
165
|
+
// the real problem — fail closed with a clear message instead.
|
|
166
|
+
throw new Error(`bundled Dockerfile "${stack}.Dockerfile" is missing from ` +
|
|
167
|
+
`"${dockerDir}" — the javi-forge installation looks corrupted; ` +
|
|
168
|
+
"reinstall the package (or pass an explicit dockerfilesDir)");
|
|
169
|
+
}
|
|
150
170
|
}
|
|
151
171
|
}
|
|
152
172
|
// Staleness check: compare Dockerfile hash with the one embedded in the image label
|