Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 38ad585

Browse files
Support Node.js 22.6 with type stripping (#35427)
This solves the [docker build failure](https://github.com/go-gitea/gitea/actions/runs/17514788636/job/49750917680) on `linux/riscv64` by enabling the experimental flag on Node.js before 22.18.
1 parent 0c31499 commit 38ad585

File tree

4 files changed

+29
-27
lines changed

4 files changed

+29
-27
lines changed

‎Dockerfile

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ RUN apk --no-cache add \
1818
&& npm install -g pnpm@10 \
1919
&& rm -rf /var/cache/apk/*
2020

21-
# workaround for node >= 22.18.0 on alpine 3.22. Remove when upgrading to alpine 3.23
22-
COPY --from=docker.io/node:22-alpine3.22 /usr/local/bin/node /usr/local/bin/node
23-
2421
# Setup repo
2522
COPY . ${GOPATH}/src/code.gitea.io/gitea
2623
WORKDIR ${GOPATH}/src/code.gitea.io/gitea

‎Dockerfile.rootless

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ RUN apk --no-cache add \
1818
&& npm install -g pnpm@10 \
1919
&& rm -rf /var/cache/apk/*
2020

21-
# workaround for node >= 22.18.0 on alpine 3.22. Remove when upgrading to alpine 3.23
22-
COPY --from=docker.io/node:22-alpine3.22 /usr/local/bin/node /usr/local/bin/node
23-
2421
# Setup repo
2522
COPY . ${GOPATH}/src/code.gitea.io/gitea
2623
WORKDIR ${GOPATH}/src/code.gitea.io/gitea

‎Makefile

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,15 @@ STORED_VERSION_FILE := VERSION
9696
GITHUB_REF_TYPE ?= branch
9797
GITHUB_REF_NAME ?= $(shell git rev-parse --abbrev-ref HEAD)
9898

99+
# Enable typescript support in Node.js before 22.18
100+
# TODO: Remove this once we can raise the minimum Node.js version to 22.18 (alpine >= 3.23)
101+
NODE_VERSION := $(shell printf "%03d%03d%03d" $(shell node -v 2>/dev/null | cut -c2- | tr '.' ' '))
102+
ifeq ($(shell test "$(NODE_VERSION)" -lt "022018000"; echo $$?),0)
103+
NODE_VARS := NODE_OPTIONS="--experimental-strip-types"
104+
else
105+
NODE_VARS :=
106+
endif
107+
99108
ifneq ($(GITHUB_REF_TYPE),branch)
100109
VERSION ?= $(subst v,,$(GITHUB_REF_NAME))
101110
GITEA_VERSION ?= $(VERSION)
@@ -217,7 +226,6 @@ git-check:
217226
node-check:
218227
$(eval MIN_NODE_VERSION_STR := $(shell grep -Eo '"node":.*[0-9.]+"' package.json | sed -n 's/.*[^0-9.]\([0-9.]*\)"/1円/p'))
219228
$(eval MIN_NODE_VERSION := $(shell printf "%03d%03d%03d" $(shell echo '$(MIN_NODE_VERSION_STR)' | tr '.' ' ')))
220-
$(eval NODE_VERSION := $(shell printf "%03d%03d%03d" $(shell node -v | cut -c2- | tr '.' ' ');))
221229
$(eval PNPM_MISSING := $(shell hash pnpm > /dev/null 2>&1 || echo 1))
222230
@if [ "$(NODE_VERSION)" -lt "$(MIN_NODE_VERSION)" ]; then \
223231
echo "Gitea requires Node.js $(MIN_NODE_VERSION_STR) or greater to build. You can get it at https://nodejs.org/en/download/"; \
@@ -338,29 +346,29 @@ lint-backend-fix: lint-go-fix lint-go-gitea-vet lint-editorconfig ## lint backen
338346

339347
.PHONY: lint-js
340348
lint-js: node_modules ## lint js files
341-
pnpm exec eslint --color --max-warnings=0 --ext js,ts,vue $(ESLINT_FILES)
342-
pnpm exec vue-tsc
349+
$(NODE_VARS)pnpm exec eslint --color --max-warnings=0 --ext js,ts,vue $(ESLINT_FILES)
350+
$(NODE_VARS)pnpm exec vue-tsc
343351

344352
.PHONY: lint-js-fix
345353
lint-js-fix: node_modules ## lint js files and fix issues
346-
pnpm exec eslint --color --max-warnings=0 --ext js,ts,vue $(ESLINT_FILES) --fix
347-
pnpm exec vue-tsc
354+
$(NODE_VARS)pnpm exec eslint --color --max-warnings=0 --ext js,ts,vue $(ESLINT_FILES) --fix
355+
$(NODE_VARS)pnpm exec vue-tsc
348356

349357
.PHONY: lint-css
350358
lint-css: node_modules ## lint css files
351-
pnpm exec stylelint --color --max-warnings=0 $(STYLELINT_FILES)
359+
$(NODE_VARS)pnpm exec stylelint --color --max-warnings=0 $(STYLELINT_FILES)
352360

353361
.PHONY: lint-css-fix
354362
lint-css-fix: node_modules ## lint css files and fix issues
355-
pnpm exec stylelint --color --max-warnings=0 $(STYLELINT_FILES) --fix
363+
$(NODE_VARS)pnpm exec stylelint --color --max-warnings=0 $(STYLELINT_FILES) --fix
356364

357365
.PHONY: lint-swagger
358366
lint-swagger: node_modules ## lint swagger files
359-
pnpm exec spectral lint -q -F hint $(SWAGGER_SPEC)
367+
$(NODE_VARS)pnpm exec spectral lint -q -F hint $(SWAGGER_SPEC)
360368

361369
.PHONY: lint-md
362370
lint-md: node_modules ## lint markdown files
363-
pnpm exec markdownlint *.md
371+
$(NODE_VARS)pnpm exec markdownlint *.md
364372

365373
.PHONY: lint-spell
366374
lint-spell: ## lint spelling
@@ -421,7 +429,7 @@ watch: ## watch everything and continuously rebuild
421429
.PHONY: watch-frontend
422430
watch-frontend: node-check node_modules ## watch frontend files and continuously rebuild
423431
@rm -rf $(WEBPACK_DEST_ENTRIES)
424-
NODE_ENV=development pnpm exec webpack --watch --progress --disable-interpret
432+
NODE_ENV=development $(NODE_VARS)pnpm exec webpack --watch --progress --disable-interpret
425433

426434
.PHONY: watch-backend
427435
watch-backend: go-check ## watch backend files and continuously rebuild
@@ -437,7 +445,7 @@ test-backend: ## test backend files
437445

438446
.PHONY: test-frontend
439447
test-frontend: node_modules ## test frontend files
440-
pnpm exec vitest
448+
$(NODE_VARS)pnpm exec vitest
441449

442450
.PHONY: test-check
443451
test-check:
@@ -580,7 +588,7 @@ test-mssql-migration: migrations.mssql.test migrations.individual.mssql.test
580588

581589
.PHONY: playwright
582590
playwright: deps-frontend
583-
pnpm exec playwright install $(PLAYWRIGHT_FLAGS)
591+
$(NODE_VARS)pnpm exec playwright install $(PLAYWRIGHT_FLAGS)
584592

585593
.PHONY: test-e2e%
586594
test-e2e%: TEST_TYPE ?= e2e
@@ -844,7 +852,7 @@ deps-tools: ## install tool dependencies
844852
wait
845853

846854
node_modules: pnpm-lock.yaml
847-
pnpm install --frozen-lockfile
855+
$(NODE_VARS)pnpm install --frozen-lockfile
848856
@touch node_modules
849857

850858
.venv: uv.lock
@@ -856,16 +864,16 @@ update: update-js update-py ## update js and py dependencies
856864

857865
.PHONY: update-js
858866
update-js: node-check | node_modules ## update js dependencies
859-
pnpm exec updates -u -f package.json
867+
$(NODE_VARS)pnpm exec updates -u -f package.json
860868
rm -rf node_modules pnpm-lock.yaml
861-
pnpm install
862-
pnpm exec nolyfill install
863-
pnpm install
869+
$(NODE_VARS)pnpm install
870+
$(NODE_VARS)pnpm exec nolyfill install
871+
$(NODE_VARS)pnpm install
864872
@touch node_modules
865873

866874
.PHONY: update-py
867875
update-py: node-check | node_modules ## update py dependencies
868-
pnpm exec updates -u -f pyproject.toml
876+
$(NODE_VARS)pnpm exec updates -u -f pyproject.toml
869877
rm -rf .venv uv.lock
870878
uv sync
871879
@touch .venv
@@ -877,7 +885,7 @@ $(WEBPACK_DEST): $(WEBPACK_SOURCES) $(WEBPACK_CONFIGS) pnpm-lock.yaml
877885
@$(MAKE) -s node-check node_modules
878886
@rm -rf $(WEBPACK_DEST_ENTRIES)
879887
@echo "Running webpack..."
880-
@BROWSERSLIST_IGNORE_OLD_DATA=true pnpm exec webpack --disable-interpret
888+
@BROWSERSLIST_IGNORE_OLD_DATA=true $(NODE_VARS)pnpm exec webpack --disable-interpret
881889
@touch $(WEBPACK_DEST)
882890

883891
.PHONY: svg
@@ -897,7 +905,7 @@ svg-check: svg
897905

898906
.PHONY: lockfile-check
899907
lockfile-check:
900-
pnpm install --frozen-lockfile
908+
$(NODE_VARS)pnpm install --frozen-lockfile
901909
@diff=$$(git diff --color=always pnpm-lock.yaml); \
902910
if [ -n "$$diff" ]; then \
903911
echo "pnpm-lock.yaml is inconsistent with package.json"; \

‎package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"type": "module",
33
"packageManager": "pnpm@10.0.0",
44
"engines": {
5-
"node": ">= 22.18.0",
5+
"node": ">= 22.6.0",
66
"pnpm": ">= 10.0.0"
77
},
88
"dependencies": {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /