From 00e07e54c647d00f85dc5c92877cfa44a78a983d Mon Sep 17 00:00:00 2001 From: Milind L Date: Mon, 30 Dec 2024 10:29:57 +0530 Subject: [PATCH 01/14] WIP: tests for debian-based OSes --- .semaphore/post_install.yml | 86 +++++++++++++++++++++++++++++++ ci/post-install/install-debian.sh | 29 +++++++++++ 2 files changed, 115 insertions(+) create mode 100644 .semaphore/post_install.yml create mode 100755 ci/post-install/install-debian.sh diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml new file mode 100644 index 00000000..3a7399c8 --- /dev/null +++ b/.semaphore/post_install.yml @@ -0,0 +1,86 @@ +# This file is managed by ServiceBot plugin - Semaphore. The content in this file is created using a common +# template and configurations in service.yml. +# Any modifications made to version, name, agent, and global_job_config will be overwritten by the generated +# content in nightly runs. Code changes made to the remaining sections will not be affected. +# For more information, please refer to the page: +# https://confluentinc.atlassian.net/wiki/spaces/Foundations/pages/2871296194/Add+SemaphoreCI +version: v1.0 +name: build-test-release +agent: + machine: + type: s1-prod-ubuntu22-04-amd64-1 + +global_job_config: + prologue: + commands: + - checkout + +auto_cancel: + running: + when: "branch != 'master'" + +execution_time_limit: + hours: 3 + +queue: + - when: "branch != 'master'" + processing: parallel + +blocks: + - name: "Debian-based OS (amd64)" + dependencies: [ ] + task: + agent: + machine: + type: s1-prod-ubuntu22-04-amd64-2 + prologue: + commands: + - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' + jobs: + - name: "Install" + matrix: + - env_var: DOCKER_IMAGE + values: + - debian:bullseye + - debian:bookworm + - ubuntu:20.04 + - ubuntu:22.04 + - ubuntu:24.04 + - env_var: NODE_VERSION + values: + - 18 + - 20 + - 21 + - 22 + - 23 + commands: + - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" + + - name: "Debian-based OS (arm64)" + dependencies: [ ] + task: + agent: + machine: + type: s1-prod-ubuntu22-04-arm64-1 + prologue: + commands: + - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' + jobs: + - name: "Install" + matrix: + - env_var: DOCKER_IMAGE + values: + - debian:bullseye + - debian:bookworm + - ubuntu:20.04 + - ubuntu:22.04 + - ubuntu:24.04 + - env_var: NODE_VERSION + values: + - 18 + - 20 + - 21 + - 22 + - 23 + commands: + - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" diff --git a/ci/post-install/install-debian.sh b/ci/post-install/install-debian.sh new file mode 100755 index 00000000..795e6b96 --- /dev/null +++ b/ci/post-install/install-debian.sh @@ -0,0 +1,29 @@ +#!/bin/sh +set -e + +export DEBIAN_FRONTEND=noninteractive +export NEEDRESTART_MODE=a + +apt update +apt install -y bash curl + +node_version="$1" + +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash + +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" + +nvm install $node_version + +# Only for logging purposes +node -v +uname -m + +installDir=$(mktemp -d) +cd $installDir +npm init -y + +# npm install @confluentinc/kafka-javascript --save + +# node -e 'console.log(require("@confluentinc/kafka-javascript").librdkafkaVersion);' From a51bda4e57d93b198502cbb9da943cf543961ff6 Mon Sep 17 00:00:00 2001 From: Milind L Date: Mon, 30 Dec 2024 10:34:34 +0530 Subject: [PATCH 02/14] Try with quoted OS names --- .semaphore/post_install.yml | 28 ++++------------------------ 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index 3a7399c8..5a1ead2e 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -40,19 +40,9 @@ blocks: - name: "Install" matrix: - env_var: DOCKER_IMAGE - values: - - debian:bullseye - - debian:bookworm - - ubuntu:20.04 - - ubuntu:22.04 - - ubuntu:24.04 + values: ["debian:bullseye", "debian:bookworm", "ubuntu:20.04", "ubuntu:22.04", "ubuntu:24.04"] - env_var: NODE_VERSION - values: - - 18 - - 20 - - 21 - - 22 - - 23 + values: ["18", "20", "21", "22", "23"] commands: - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" @@ -69,18 +59,8 @@ blocks: - name: "Install" matrix: - env_var: DOCKER_IMAGE - values: - - debian:bullseye - - debian:bookworm - - ubuntu:20.04 - - ubuntu:22.04 - - ubuntu:24.04 + values: ["debian:bullseye", "debian:bookworm", "ubuntu:20.04", "ubuntu:22.04", "ubuntu:24.04"] - env_var: NODE_VERSION - values: - - 18 - - 20 - - 21 - - 22 - - 23 + values: ["18", "20", "21", "22", "23"] commands: - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" From 6b07fae514d27b02925adec42c32d047fca82387 Mon Sep 17 00:00:00 2001 From: Milind L Date: Mon, 30 Dec 2024 11:11:34 +0530 Subject: [PATCH 03/14] Add alpine builds --- .semaphore/post_install.yml | 46 +++++++++++++++++++++++++++++-- ci/post-install/install-alpine.sh | 27 ++++++++++++++++++ ci/post-install/install-debian.sh | 4 ++- 3 files changed, 73 insertions(+), 4 deletions(-) create mode 100755 ci/post-install/install-alpine.sh diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index 5a1ead2e..55f9b8ac 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -14,6 +14,8 @@ global_job_config: prologue: commands: - checkout + # Set this via Semaphore later. + - export LIBRARY_VERSION=1.0.0 auto_cancel: running: @@ -32,7 +34,7 @@ blocks: task: agent: machine: - type: s1-prod-ubuntu22-04-amd64-2 + type: s1-prod-ubuntu22-04-amd64-1 prologue: commands: - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' @@ -44,7 +46,7 @@ blocks: - env_var: NODE_VERSION values: ["18", "20", "21", "22", "23"] commands: - - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" + - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" "$LIBRARY_VERSION" - name: "Debian-based OS (arm64)" dependencies: [ ] @@ -63,4 +65,42 @@ blocks: - env_var: NODE_VERSION values: ["18", "20", "21", "22", "23"] commands: - - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" + - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" "$LIBRARY_VERSION" + + - name: "Alpine-based OS (amd64)" + dependencies: [ ] + task: + agent: + machine: + type: s1-prod-ubuntu22-04-amd64-1 + prologue: + commands: + - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' + jobs: + - name: "Install" + matrix: + - env_var: DOCKER_IMAGE + values: ["alpine"] # The latest version + - env_var: NODE_VERSION + values: ["18", "20", "21", "22", "23"] + commands: + - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-alpine.sh "$NODE_VERSION" "$LIBRARY_VERSION" + + - name: "Alpine-based OS (arm64)" + dependencies: [ ] + task: + agent: + machine: + type: s1-prod-ubuntu22-04-arm64-1 + prologue: + commands: + - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' + jobs: + - name: "Install" + matrix: + - env_var: DOCKER_IMAGE + values: ["alpine"] # The latest version + - env_var: NODE_VERSION + values: ["18", "20", "21", "22", "23"] + commands: + - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-alpine.sh "$NODE_VERSION" "$LIBRARY_VERSION" diff --git a/ci/post-install/install-alpine.sh b/ci/post-install/install-alpine.sh new file mode 100755 index 00000000..76785e25 --- /dev/null +++ b/ci/post-install/install-alpine.sh @@ -0,0 +1,27 @@ +#!/bin/sh +set -e + +apk add -U bash curl + +node_version="$1" +library_version="$2" + +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash + +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" + +nvm install $node_version + +# Only for logging purposes +node -v +uname -m + +installDir=$(mktemp -d) +cd $installDir +npm init -y + +# uncomment for one final run. +echo npm install @confluentinc/kafka-javascript@${library_version} --save + +# node -e 'console.log(require("@confluentinc/kafka-javascript").librdkafkaVersion);' diff --git a/ci/post-install/install-debian.sh b/ci/post-install/install-debian.sh index 795e6b96..278a31c4 100755 --- a/ci/post-install/install-debian.sh +++ b/ci/post-install/install-debian.sh @@ -8,6 +8,7 @@ apt update apt install -y bash curl node_version="$1" +library_version="$2" curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash @@ -24,6 +25,7 @@ installDir=$(mktemp -d) cd $installDir npm init -y -# npm install @confluentinc/kafka-javascript --save +# uncomment for one final run. +echo npm install @confluentinc/kafka-javascript@${library_version} --save # node -e 'console.log(require("@confluentinc/kafka-javascript").librdkafkaVersion);' From c902e11507c9926bec3caee9a6df47854f39c675 Mon Sep 17 00:00:00 2001 From: Milind L Date: Mon, 30 Dec 2024 11:52:25 +0530 Subject: [PATCH 04/14] Update alpine post-install --- .semaphore/post_install.yml | 10 +++------- ci/post-install/install-alpine.sh | 10 ---------- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index 55f9b8ac..e0f3bdc8 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -5,7 +5,7 @@ # For more information, please refer to the page: # https://confluentinc.atlassian.net/wiki/spaces/Foundations/pages/2871296194/Add+SemaphoreCI version: v1.0 -name: build-test-release +name: post-install agent: machine: type: s1-prod-ubuntu22-04-amd64-1 @@ -79,12 +79,10 @@ blocks: jobs: - name: "Install" matrix: - - env_var: DOCKER_IMAGE - values: ["alpine"] # The latest version - env_var: NODE_VERSION values: ["18", "20", "21", "22", "23"] commands: - - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-alpine.sh "$NODE_VERSION" "$LIBRARY_VERSION" + - docker run -v "$(pwd):/v" "node:${NODE_VERSION}-alpine" /v/ci/post-install/install-alpine.sh "$NODE_VERSION" "$LIBRARY_VERSION" - name: "Alpine-based OS (arm64)" dependencies: [ ] @@ -98,9 +96,7 @@ blocks: jobs: - name: "Install" matrix: - - env_var: DOCKER_IMAGE - values: ["alpine"] # The latest version - env_var: NODE_VERSION values: ["18", "20", "21", "22", "23"] commands: - - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-alpine.sh "$NODE_VERSION" "$LIBRARY_VERSION" + - docker run -v "$(pwd):/v" "node:${NODE_VERSION}-alpine" /v/ci/post-install/install-alpine.sh "$NODE_VERSION" "$LIBRARY_VERSION" diff --git a/ci/post-install/install-alpine.sh b/ci/post-install/install-alpine.sh index 76785e25..b4364608 100755 --- a/ci/post-install/install-alpine.sh +++ b/ci/post-install/install-alpine.sh @@ -1,18 +1,8 @@ #!/bin/sh set -e -apk add -U bash curl - -node_version="$1" library_version="$2" -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash - -export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" - -nvm install $node_version - # Only for logging purposes node -v uname -m From 02a30ad7ae5de5322bc38d0c37b793161fa5cb8e Mon Sep 17 00:00:00 2001 From: Milind L Date: Mon, 30 Dec 2024 12:19:42 +0530 Subject: [PATCH 05/14] Add rhel block --- .semaphore/post_install.yml | 38 +++++++++++++++++++++++++++++++ ci/post-install/_install_ckjs.sh | 13 +++++++++++ ci/post-install/_install_nvm.sh | 8 +++++++ ci/post-install/install-alpine.sh | 15 +----------- ci/post-install/install-debian.sh | 24 ++----------------- ci/post-install/install-rhel.sh | 9 ++++++++ 6 files changed, 71 insertions(+), 36 deletions(-) create mode 100644 ci/post-install/_install_ckjs.sh create mode 100644 ci/post-install/_install_nvm.sh create mode 100755 ci/post-install/install-rhel.sh diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index e0f3bdc8..b8eed99f 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -100,3 +100,41 @@ blocks: values: ["18", "20", "21", "22", "23"] commands: - docker run -v "$(pwd):/v" "node:${NODE_VERSION}-alpine" /v/ci/post-install/install-alpine.sh "$NODE_VERSION" "$LIBRARY_VERSION" + + - name: "RHEL-based OS (amd64)" + dependencies: [ ] + task: + agent: + machine: + type: s1-prod-ubuntu22-04-amd64-1 + prologue: + commands: + - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' + jobs: + - name: "Install" + matrix: + - env_var: DOCKER_IMAGE + values: ["quay.io/centos/centos:stream9", "quay.io/centos/centos:stream8", "almalinux:9", "almalinux:8", "rockylinux:9", "rockylinux:8"] + - env_var: NODE_VERSION + values: ["18", "20", "21", "22", "23"] + commands: + - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-rhel.sh "$NODE_VERSION" "$LIBRARY_VERSION" + + - name: "RHEL-based OS (arm64)" + dependencies: [ ] + task: + agent: + machine: + type: s1-prod-ubuntu22-04-arm64-1 + prologue: + commands: + - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' + jobs: + - name: "Install" + matrix: + - env_var: DOCKER_IMAGE + values: ["quay.io/centos/centos:stream9", "quay.io/centos/centos:stream8", "almalinux:9", "almalinux:8", "rockylinux:9", "rockylinux:8"] + - env_var: NODE_VERSION + values: ["18", "20", "21", "22", "23"] + commands: + - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-rhel.sh "$NODE_VERSION" "$LIBRARY_VERSION" diff --git a/ci/post-install/_install_ckjs.sh b/ci/post-install/_install_ckjs.sh new file mode 100644 index 00000000..4b5fbbb7 --- /dev/null +++ b/ci/post-install/_install_ckjs.sh @@ -0,0 +1,13 @@ +# Only for logging purposes +node -v +uname -m + +installDir=$(mktemp -d) +cd $installDir +npm init -y + +# uncomment for one final run. +library_version="$2" +echo npm install @confluentinc/kafka-javascript@${library_version} --save + +# node -e 'console.log(require("@confluentinc/kafka-javascript").librdkafkaVersion);' diff --git a/ci/post-install/_install_nvm.sh b/ci/post-install/_install_nvm.sh new file mode 100644 index 00000000..d387412e --- /dev/null +++ b/ci/post-install/_install_nvm.sh @@ -0,0 +1,8 @@ +node_version="$1" + +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash + +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" + +nvm install $node_version \ No newline at end of file diff --git a/ci/post-install/install-alpine.sh b/ci/post-install/install-alpine.sh index b4364608..b413c44e 100755 --- a/ci/post-install/install-alpine.sh +++ b/ci/post-install/install-alpine.sh @@ -1,17 +1,4 @@ #!/bin/sh set -e -library_version="$2" - -# Only for logging purposes -node -v -uname -m - -installDir=$(mktemp -d) -cd $installDir -npm init -y - -# uncomment for one final run. -echo npm install @confluentinc/kafka-javascript@${library_version} --save - -# node -e 'console.log(require("@confluentinc/kafka-javascript").librdkafkaVersion);' +. /v/ci/post-install/_install_ckjs.sh diff --git a/ci/post-install/install-debian.sh b/ci/post-install/install-debian.sh index 278a31c4..5daa68d9 100755 --- a/ci/post-install/install-debian.sh +++ b/ci/post-install/install-debian.sh @@ -7,25 +7,5 @@ export NEEDRESTART_MODE=a apt update apt install -y bash curl -node_version="$1" -library_version="$2" - -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash - -export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" - -nvm install $node_version - -# Only for logging purposes -node -v -uname -m - -installDir=$(mktemp -d) -cd $installDir -npm init -y - -# uncomment for one final run. -echo npm install @confluentinc/kafka-javascript@${library_version} --save - -# node -e 'console.log(require("@confluentinc/kafka-javascript").librdkafkaVersion);' +. /v/ci/post-install/_install_nvm.sh +. /v/ci/post-install/_install_ckjs.sh diff --git a/ci/post-install/install-rhel.sh b/ci/post-install/install-rhel.sh new file mode 100755 index 00000000..5ea1c7cf --- /dev/null +++ b/ci/post-install/install-rhel.sh @@ -0,0 +1,9 @@ +#!/bin/sh +set -e + +pwd + +dnf install --allowerasing -y bash curl + +. /v/ci/post-install/_install_nvm.sh +. /v/ci/post-install/_install_ckjs.sh \ No newline at end of file From 08f6f742776315feb8922476f7a1d8d4159af2dc Mon Sep 17 00:00:00 2001 From: Milind L Date: Mon, 30 Dec 2024 12:37:44 +0530 Subject: [PATCH 06/14] Add macos block --- .semaphore/post_install.yml | 40 ++++++++++++++++++++++++++++++++-- ci/post-install/install-mac.sh | 5 +++++ 2 files changed, 43 insertions(+), 2 deletions(-) create mode 100755 ci/post-install/install-mac.sh diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index b8eed99f..0d433fc1 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -114,7 +114,7 @@ blocks: - name: "Install" matrix: - env_var: DOCKER_IMAGE - values: ["quay.io/centos/centos:stream9", "quay.io/centos/centos:stream8", "almalinux:9", "almalinux:8", "rockylinux:9", "rockylinux:8"] + values: ["quay.io/centos/centos:stream9", "almalinux:9", "almalinux:8", "rockylinux:9", "rockylinux:8"] - env_var: NODE_VERSION values: ["18", "20", "21", "22", "23"] commands: @@ -133,8 +133,44 @@ blocks: - name: "Install" matrix: - env_var: DOCKER_IMAGE - values: ["quay.io/centos/centos:stream9", "quay.io/centos/centos:stream8", "almalinux:9", "almalinux:8", "rockylinux:9", "rockylinux:8"] + values: ["quay.io/centos/centos:stream9", "almalinux:9", "almalinux:8", "rockylinux:9", "rockylinux:8"] - env_var: NODE_VERSION values: ["18", "20", "21", "22", "23"] commands: - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-rhel.sh "$NODE_VERSION" "$LIBRARY_VERSION" + + - name: "Mac (Intel)" + dependencies: [ ] + task: + agent: + machine: + type: s1-prod-macos-13-5-amd64 + prologue: + commands: + - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' + jobs: + - name: "Install" + matrix: + - env_var: NODE_VERSION + values: ["18", "20", "21", "22", "23"] + commands: + - sem-version node $NODE_VERSION + - bash ci/post-install/install-mac.sh "$NODE_VERSION" "$LIBRARY_VERSION" + + - name: "Mac (M1)" + dependencies: [ ] + task: + agent: + machine: + type: s1-prod-macos-13-5-arm64 + prologue: + commands: + - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' + jobs: + - name: "Install" + matrix: + - env_var: NODE_VERSION + values: ["18", "20", "21", "22", "23"] + commands: + - sem-version node $NODE_VERSION + - bash ci/post-install/install-mac.sh "$NODE_VERSION" "$LIBRARY_VERSION" diff --git a/ci/post-install/install-mac.sh b/ci/post-install/install-mac.sh new file mode 100755 index 00000000..abcb7077 --- /dev/null +++ b/ci/post-install/install-mac.sh @@ -0,0 +1,5 @@ +#!/bin/sh +set -e + +. $(pwd)/ci/post-install/_install_nvm.sh +. $(pwd)/ci/post-install/_install_ckjs.sh From 3aced8553a34b01b264cef1022a797657759c786 Mon Sep 17 00:00:00 2001 From: Milind L Date: Mon, 30 Dec 2024 12:46:37 +0530 Subject: [PATCH 07/14] Add Windows block --- .semaphore/post_install.yml | 45 +++++++++++++++++++++++++++++----- ci/post-install/install-mac.sh | 1 - 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index 0d433fc1..1f6f87d7 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -145,9 +145,6 @@ blocks: agent: machine: type: s1-prod-macos-13-5-amd64 - prologue: - commands: - - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' jobs: - name: "Install" matrix: @@ -163,9 +160,6 @@ blocks: agent: machine: type: s1-prod-macos-13-5-arm64 - prologue: - commands: - - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' jobs: - name: "Install" matrix: @@ -174,3 +168,42 @@ blocks: commands: - sem-version node $NODE_VERSION - bash ci/post-install/install-mac.sh "$NODE_VERSION" "$LIBRARY_VERSION" + + - name: "Windows (x64)" + dependencies: [ ] + task: + agent: + machine: + type: s1-prod-windows + prologue: + commands: + # The semaphore agent already comes with an installed version of node. We, however, need to use a different + # version of node for the release (as many as we need to cover all the different ABIs). + # The node installer does not allow us to downgrade, so we need to uninstall the current version. + # The method below isn't particularly robust (as it depends on the particular format of the URL), but it + # works and can be easily fixed if it breaks (the node --version in the below jobs can be checked if there are + # any issues in the build). + - $env:InstalledMajor = (Get-Command node).Version.Major + - $env:InstalledMinor = (Get-Command node).Version.Minor + - $env:InstalledBuild = (Get-Command node).Version.Build + - $env:InstalledVersion = "v${env:InstalledMajor}.${env:InstalledMinor}.${env:InstalledBuild}" + - echo "https://nodejs.org/dist/${env:InstalledVersion}/node-${env:InstalledVersion}-x64.msi" + - Invoke-WebRequest "https://nodejs.org/dist/${env:InstalledVersion}/node-${env:InstalledVersion}-x64.msi" -OutFile node_old.msi + - msiexec /qn /l* node-old-log.txt /uninstall node_old.msi + - cat .\node-old-log.txt + jobs: + - name: "Install" + matrix: + - env_var: NODE_VERSION + values: ["18.19.0", "20.11.0", "21.6.1", "22.2.0", "23.2.0"] + commands: + - Invoke-WebRequest "https://nodejs.org/download/release/v${env:NODE_VERSION}/node-v${env:NODE_VERSION}-x64.msi" -OutFile node.msi + - msiexec /qn /l* node-log.txt /i node.msi + - cat .\node-log.txt + - node --version + - $tempFolderPath = Join-Path $Env:Temp $(New-Guid) + - New-Item -Type Directory -Path $tempFolderPath | Out-Null + - cd $tempFolderPath + - npm init -y + - echo npm install --save @confluentinc/kafka-javascript@${env:LIBRARY_VERSION} + # TODO: add the check here diff --git a/ci/post-install/install-mac.sh b/ci/post-install/install-mac.sh index abcb7077..daa40b48 100755 --- a/ci/post-install/install-mac.sh +++ b/ci/post-install/install-mac.sh @@ -1,5 +1,4 @@ #!/bin/sh set -e -. $(pwd)/ci/post-install/_install_nvm.sh . $(pwd)/ci/post-install/_install_ckjs.sh From 2b0ce25c2d89e781c9888ea32a0d820c43fb1fc6 Mon Sep 17 00:00:00 2001 From: Milind L Date: Mon, 30 Dec 2024 13:44:56 +0530 Subject: [PATCH 08/14] Remove unix specific line from pipeline --- .semaphore/post_install.yml | 2 -- ci/post-install/_install_ckjs.sh | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index 1f6f87d7..cde31976 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -14,8 +14,6 @@ global_job_config: prologue: commands: - checkout - # Set this via Semaphore later. - - export LIBRARY_VERSION=1.0.0 auto_cancel: running: diff --git a/ci/post-install/_install_ckjs.sh b/ci/post-install/_install_ckjs.sh index 4b5fbbb7..996262b4 100644 --- a/ci/post-install/_install_ckjs.sh +++ b/ci/post-install/_install_ckjs.sh @@ -8,6 +8,11 @@ npm init -y # uncomment for one final run. library_version="$2" + +if [ -z "${library_version}" ]; then + library_version="latest" +fi + echo npm install @confluentinc/kafka-javascript@${library_version} --save # node -e 'console.log(require("@confluentinc/kafka-javascript").librdkafkaVersion);' From 4bc2c92ebadfd852f2b52336691776dc11d17476 Mon Sep 17 00:00:00 2001 From: Milind L Date: Mon, 30 Dec 2024 13:49:28 +0530 Subject: [PATCH 09/14] Add tempFolderPath to env --- .semaphore/post_install.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index cde31976..3346cf74 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -199,9 +199,9 @@ blocks: - msiexec /qn /l* node-log.txt /i node.msi - cat .\node-log.txt - node --version - - $tempFolderPath = Join-Path $Env:Temp $(New-Guid) - - New-Item -Type Directory -Path $tempFolderPath | Out-Null - - cd $tempFolderPath + - $env:tempFolderPath = Join-Path $Env:Temp $(New-Guid) + - New-Item -Type Directory -Path ${env:tempFolderPath} | Out-Null + - cd ${env:tempFolderPath} - npm init -y - echo npm install --save @confluentinc/kafka-javascript@${env:LIBRARY_VERSION} # TODO: add the check here From 25c383b418d5017643f84e92611471bcad2709b6 Mon Sep 17 00:00:00 2001 From: Milind L Date: Mon, 30 Dec 2024 14:12:15 +0530 Subject: [PATCH 10/14] Enable install once --- .semaphore/post_install.yml | 4 ++-- .semaphore/project.yml | 10 ++++++++++ ci/post-install/_install_ckjs.sh | 5 ++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index 3346cf74..5657feeb 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -203,5 +203,5 @@ blocks: - New-Item -Type Directory -Path ${env:tempFolderPath} | Out-Null - cd ${env:tempFolderPath} - npm init -y - - echo npm install --save @confluentinc/kafka-javascript@${env:LIBRARY_VERSION} - # TODO: add the check here + - npm install --save @confluentinc/kafka-javascript@${env:LIBRARY_VERSION} + - node -e 'console.log(require("@confluentinc/kafka-javascript").librdkafkaVersion);' diff --git a/.semaphore/project.yml b/.semaphore/project.yml index 7bef71a4..db471c8d 100644 --- a/.semaphore/project.yml +++ b/.semaphore/project.yml @@ -42,3 +42,13 @@ spec: - pull_request - forked_pull_request - tag + tasks: + - name: post-install + scheduled: False + branch: "master" + pipeline_file: .semaphore/post_install.yml + parameters: + - name: LIBRARY_VERSION + required: True + description: "Which library version to install." + default_value: "latest" diff --git a/ci/post-install/_install_ckjs.sh b/ci/post-install/_install_ckjs.sh index 996262b4..9a0d64f1 100644 --- a/ci/post-install/_install_ckjs.sh +++ b/ci/post-install/_install_ckjs.sh @@ -13,6 +13,5 @@ if [ -z "${library_version}" ]; then library_version="latest" fi -echo npm install @confluentinc/kafka-javascript@${library_version} --save - -# node -e 'console.log(require("@confluentinc/kafka-javascript").librdkafkaVersion);' +npm install @confluentinc/kafka-javascript@${library_version} --save +node -e 'console.log(require("@confluentinc/kafka-javascript").librdkafkaVersion);' From 4ac860ae7776622c45f3ea19a076655520a8b8d5 Mon Sep 17 00:00:00 2001 From: Milind L Date: Mon, 30 Dec 2024 14:21:23 +0530 Subject: [PATCH 11/14] Fix windows error --- .semaphore/post_install.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index 5657feeb..c200ce5d 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -204,4 +204,4 @@ blocks: - cd ${env:tempFolderPath} - npm init -y - npm install --save @confluentinc/kafka-javascript@${env:LIBRARY_VERSION} - - node -e 'console.log(require("@confluentinc/kafka-javascript").librdkafkaVersion);' + - node -e "console.log(require('@confluentinc/kafka-javascript').librdkafkaVersion);" From 04806a5f4fe0e7b31e7e366ee39444faa29bbd88 Mon Sep 17 00:00:00 2001 From: Milind L Date: Fri, 3 Jan 2025 10:54:27 +0530 Subject: [PATCH 12/14] Remove AlmaLinux/RockyLinux 9, split Debian block --- .semaphore/post_install.yml | 50 ++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index c200ce5d..f8025b9d 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -27,7 +27,7 @@ queue: processing: parallel blocks: - - name: "Debian-based OS (amd64)" + - name: "Debian-based OS (amd64) - up to node 23" dependencies: [ ] task: agent: @@ -42,11 +42,30 @@ blocks: - env_var: DOCKER_IMAGE values: ["debian:bullseye", "debian:bookworm", "ubuntu:20.04", "ubuntu:22.04", "ubuntu:24.04"] - env_var: NODE_VERSION - values: ["18", "20", "21", "22", "23"] + values: ["18", "20", "21", "22"] + commands: + - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" "$LIBRARY_VERSION" + + - name: "Debian-based OS (amd64) - beyond node 23" + dependencies: [ ] + task: + agent: + machine: + type: s1-prod-ubuntu22-04-amd64-1 + prologue: + commands: + - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' + jobs: + - name: "Install" + matrix: + - env_var: DOCKER_IMAGE + values: ["debian:bookworm", "ubuntu:22.04", "ubuntu:24.04"] + - env_var: NODE_VERSION + values: ["23"] commands: - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" "$LIBRARY_VERSION" - - name: "Debian-based OS (arm64)" + - name: "Debian-based OS (arm64) - up to node 23" dependencies: [ ] task: agent: @@ -61,7 +80,26 @@ blocks: - env_var: DOCKER_IMAGE values: ["debian:bullseye", "debian:bookworm", "ubuntu:20.04", "ubuntu:22.04", "ubuntu:24.04"] - env_var: NODE_VERSION - values: ["18", "20", "21", "22", "23"] + values: ["18", "20", "21", "22"] + commands: + - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" "$LIBRARY_VERSION" + + - name: "Debian-based OS (arm64) - beyond node 23" + dependencies: [ ] + task: + agent: + machine: + type: s1-prod-ubuntu22-04-arm64-1 + prologue: + commands: + - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' + jobs: + - name: "Install" + matrix: + - env_var: DOCKER_IMAGE + values: ["debian:bookworm", "ubuntu:22.04", "ubuntu:24.04"] + - env_var: NODE_VERSION + values: ["23"] commands: - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" "$LIBRARY_VERSION" @@ -112,7 +150,7 @@ blocks: - name: "Install" matrix: - env_var: DOCKER_IMAGE - values: ["quay.io/centos/centos:stream9", "almalinux:9", "almalinux:8", "rockylinux:9", "rockylinux:8"] + values: ["quay.io/centos/centos:stream9", "almalinux:9", "rockylinux:9"] - env_var: NODE_VERSION values: ["18", "20", "21", "22", "23"] commands: @@ -131,7 +169,7 @@ blocks: - name: "Install" matrix: - env_var: DOCKER_IMAGE - values: ["quay.io/centos/centos:stream9", "almalinux:9", "almalinux:8", "rockylinux:9", "rockylinux:8"] + values: ["quay.io/centos/centos:stream9", "almalinux:9", "rockylinux:9"] - env_var: NODE_VERSION values: ["18", "20", "21", "22", "23"] commands: From 8c13757c499a9592ae70bbdc356fda4790b4974c Mon Sep 17 00:00:00 2001 From: Milind L Date: Sat, 18 Jan 2025 14:40:14 +0530 Subject: [PATCH 13/14] Add node 23 to debian older tests --- .semaphore/post_install.yml | 46 ++++--------------------------------- 1 file changed, 4 insertions(+), 42 deletions(-) diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index f8025b9d..4327efd5 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -27,7 +27,7 @@ queue: processing: parallel blocks: - - name: "Debian-based OS (amd64) - up to node 23" + - name: "Debian-based OS (amd64)" dependencies: [ ] task: agent: @@ -42,30 +42,11 @@ blocks: - env_var: DOCKER_IMAGE values: ["debian:bullseye", "debian:bookworm", "ubuntu:20.04", "ubuntu:22.04", "ubuntu:24.04"] - env_var: NODE_VERSION - values: ["18", "20", "21", "22"] - commands: - - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" "$LIBRARY_VERSION" - - - name: "Debian-based OS (amd64) - beyond node 23" - dependencies: [ ] - task: - agent: - machine: - type: s1-prod-ubuntu22-04-amd64-1 - prologue: - commands: - - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' - jobs: - - name: "Install" - matrix: - - env_var: DOCKER_IMAGE - values: ["debian:bookworm", "ubuntu:22.04", "ubuntu:24.04"] - - env_var: NODE_VERSION - values: ["23"] + values: ["18", "20", "21", "22", "23"] commands: - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" "$LIBRARY_VERSION" - - name: "Debian-based OS (arm64) - up to node 23" + - name: "Debian-based OS (arm64)" dependencies: [ ] task: agent: @@ -80,26 +61,7 @@ blocks: - env_var: DOCKER_IMAGE values: ["debian:bullseye", "debian:bookworm", "ubuntu:20.04", "ubuntu:22.04", "ubuntu:24.04"] - env_var: NODE_VERSION - values: ["18", "20", "21", "22"] - commands: - - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" "$LIBRARY_VERSION" - - - name: "Debian-based OS (arm64) - beyond node 23" - dependencies: [ ] - task: - agent: - machine: - type: s1-prod-ubuntu22-04-arm64-1 - prologue: - commands: - - '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY' - jobs: - - name: "Install" - matrix: - - env_var: DOCKER_IMAGE - values: ["debian:bookworm", "ubuntu:22.04", "ubuntu:24.04"] - - env_var: NODE_VERSION - values: ["23"] + values: ["18", "20", "21", "22", "23"] commands: - docker run -v "$(pwd):/v" "$DOCKER_IMAGE" /v/ci/post-install/install-debian.sh "$NODE_VERSION" "$LIBRARY_VERSION" From f99db41c804045a3bbf3f1dace56ab8e2b811094 Mon Sep 17 00:00:00 2001 From: Milind L Date: Mon, 20 Jan 2025 18:06:47 +0530 Subject: [PATCH 14/14] Address review comments --- .semaphore/post_install.yml | 6 ------ .semaphore/project.yml | 10 ---------- service.yml | 10 ++++++++++ 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/.semaphore/post_install.yml b/.semaphore/post_install.yml index 4327efd5..30ae30bc 100644 --- a/.semaphore/post_install.yml +++ b/.semaphore/post_install.yml @@ -1,9 +1,3 @@ -# This file is managed by ServiceBot plugin - Semaphore. The content in this file is created using a common -# template and configurations in service.yml. -# Any modifications made to version, name, agent, and global_job_config will be overwritten by the generated -# content in nightly runs. Code changes made to the remaining sections will not be affected. -# For more information, please refer to the page: -# https://confluentinc.atlassian.net/wiki/spaces/Foundations/pages/2871296194/Add+SemaphoreCI version: v1.0 name: post-install agent: diff --git a/.semaphore/project.yml b/.semaphore/project.yml index db471c8d..7bef71a4 100644 --- a/.semaphore/project.yml +++ b/.semaphore/project.yml @@ -42,13 +42,3 @@ spec: - pull_request - forked_pull_request - tag - tasks: - - name: post-install - scheduled: False - branch: "master" - pipeline_file: .semaphore/post_install.yml - parameters: - - name: LIBRARY_VERSION - required: True - description: "Which library version to install." - default_value: "latest" diff --git a/service.yml b/service.yml index 7743d395..2ca1df08 100644 --- a/service.yml +++ b/service.yml @@ -10,6 +10,16 @@ codeowners: enable: true semaphore: enable: true + tasks: + - name: post-install + scheduled: false + branch: "master" + pipeline_file: .semaphore/post_install.yml + parameters: + - name: LIBRARY_VERSION + required: true + description: "Which library version to install." + default_value: "latest" sonarqube: enable: true coverage_reports: pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy