Description
We need to learn more about how to upgrade node in a service that we own but seldom do work in. This is a research task to determine what needs to happen.
- Conditions of acceptance
- Collect examples of similar implementations (Andrew Otto did this recently). Mainly https://wikitech.wikimedia.org/wiki/Changeprop/Memorandum_2023-11 and T348950.
- Set up environment to run locally.
- Get unit tests passing locally (node 18).
- Get integration tests passing locally (node 18).
- Get unit tests passing locally (node 20).
- Get integration tests passing locally (node 20).
Quick docker testing reference:
### Contents of Dockerfile.node20 file placed under change-propagation repo ### FROM node:20-buster WORKDIR /app COPY . . ENV KAFKA_VERSION="1.1.1" ENV KAFKA_HOME="/kafka" RUN apt-get update && apt-get install -y wget netcat-traditional default-jre-headless redis RUN npm install RUN npm run install-kafka EXPOSE 2181 EXPOSE 9092 EXPOSE 6379 CMD [ "bash" ] ### End docker file contents ### ### In change-propagation directory ### docker build -t changeprop -f "$PWD/Dockerfile.node20" . docker run --rm -it changeprop bash ### In running container npm run test npm run start-kafka && redis-server --daemonize yes npm run integration