From 84b4359f42cd0d9bf3410ff5ff5915117d2537e3 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 02:31:36 +0530 Subject: [PATCH 01/93] Create multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 117 ++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 .github/workflows/multiarch-dockerhub.yml diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml new file mode 100644 index 000000000..8c146a9ac --- /dev/null +++ b/.github/workflows/multiarch-dockerhub.yml @@ -0,0 +1,117 @@ +name: Build and Push Docker Image + +on: + # To enable manual triggering of this workflow + workflow_dispatch: + + # Trigger for pushes to master and tags + push: + branches: + - master + tags: + - 'v*.*' + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +env: + IMAGE_NAME: index.docker.io/metacall/core + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + platform: + - linux/amd64 + - linux/arm/v6 + - linux/arm/v7 + - linux/arm64 + + steps: + - name: Checkout the code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.IMAGE_NAME }} + + - name: Prepare + run: | + platform=${{ matrix.platform }} + echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV + + - name: Pull MetaCall Docker Images + run: bash ./docker-compose.sh pull + + - name: Build MetaCall Docker Images + run: bash ./docker-compose.sh build + + - name: Build and Push Multi-Architecture Images + uses: docker/build-push-action@v4 + with: + context: . + platforms: ${{ matrix.platform }} + push: true + tags: ${{ env.IMAGE_NAME }}:latest + labels: ${{ steps.meta.outputs.labels }} + + - name: Export digest + id: export_digest + run: | + digest=$(docker inspect --format='{{index .RepoDigests 0}}' ${{ env.IMAGE_NAME }}:latest) + echo "DIGEST=${digest#*:}" >> $GITHUB_ENV + + - name: Logout from DockerHub + run: docker logout + + push: + runs-on: ubuntu-latest + needs: build + steps: + - name: Checkout the code + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + + - name: Create manifest list and push + run: | + docker buildx imagetools create --tag ${{ env.IMAGE_NAME }}:latest \ + --tag ${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} \ + ${{ env.IMAGE_NAME }}@sha256:${{ env.DIGEST }} + + - name: Inspect image + run: | + docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest + + - name: Cleanup Docker images + run: | + docker image prune -af + + - name: Logout from DockerHub + run: docker logout From 560da485b0d5475a5e3ef80df35bc963e899a59b Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 02:34:16 +0530 Subject: [PATCH 02/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 8c146a9ac..28c0d67a5 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -66,7 +66,7 @@ jobs: run: bash ./docker-compose.sh build - name: Build and Push Multi-Architecture Images - uses: docker/build-push-action@v4 + uses: bash ./docker-compose.sh build-multiarch with: context: . platforms: ${{ matrix.platform }} From ae7880b8837355b6b6df8dbb19f5daa5e9b946a0 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 09:54:26 +0530 Subject: [PATCH 03/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 28c0d67a5..c6af57b13 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -61,10 +61,7 @@ jobs: - name: Pull MetaCall Docker Images run: bash ./docker-compose.sh pull - - - name: Build MetaCall Docker Images - run: bash ./docker-compose.sh build - + - name: Build and Push Multi-Architecture Images uses: bash ./docker-compose.sh build-multiarch with: @@ -109,9 +106,5 @@ jobs: run: | docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest - - name: Cleanup Docker images - run: | - docker image prune -af - - name: Logout from DockerHub run: docker logout From f8cdb0d669840b10904c8d418b39dda0beaa6b29 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 10:06:23 +0530 Subject: [PATCH 04/93] Create docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docker-compose-multiarch.yml diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml new file mode 100644 index 000000000..9aa177552 --- /dev/null +++ b/docker-compose-multiarch.yml @@ -0,0 +1,13 @@ +version: '3.8' + +services: + multiarch-build: + image: ${IMAGE_NAME} + build: + context: . + dockerfile: Dockerfile + platforms: + - linux/amd64 + - linux/arm/v6 + - linux/arm/v7 + - linux/arm64 From e8a2cef0e669905bd6989c702cd924281241d967 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 10:12:36 +0530 Subject: [PATCH 05/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index 9aa177552..a99a4e350 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -1,13 +1,38 @@ version: '3.8' services: - multiarch-build: - image: ${IMAGE_NAME} + deps: build: context: . - dockerfile: Dockerfile + dockerfile: tools/deps/Dockerfile platforms: - linux/amd64 - - linux/arm/v6 - - linux/arm/v7 - linux/arm64 + image: metacall/core:deps + + dev: + build: + context: . + dockerfile: tools/dev/Dockerfile + platforms: + - linux/amd64 + - linux/arm64 + image: metacall/core:dev + + runtime: + build: + context: . + dockerfile: tools/runtime/Dockerfile + platforms: + - linux/amd64 + - linux/arm64 + image: metacall/core:runtime + + cli: + build: + context: . + dockerfile: tools/cli/Dockerfile + platforms: + - linux/amd64 + - linux/arm64 + image: metacall/core:cli From 91ab530298a10d82b5541af78e1c5ec8666de747 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 10:17:19 +0530 Subject: [PATCH 06/93] Update docker-compose.sh --- docker-compose.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docker-compose.sh b/docker-compose.sh index fb13d8b55..cb7fc8a63 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -66,6 +66,15 @@ sub_build() { ln -sf tools/cli/.dockerignore .dockerignore $DOCKER_COMPOSE -f docker-compose.yml build --force-rm cli + + # Multi-architecture build setup + docker buildx create --use --name multiarch-builder + docker buildx inspect --bootstrap + + $DOCKER_COMPOSE -f docker-compose-multiarch.yml build + $DOCKER_COMPOSE -f docker-compose-multiarch.yml push + + docker buildx rm multiarch-builder } # Build MetaCall Docker Compose without cache (link manually dockerignore files) From e3dfd6d09ddbb2c93cea23ae91b29b804dcc79d2 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 10:24:17 +0530 Subject: [PATCH 07/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index c6af57b13..b0f388cae 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -107,4 +107,4 @@ jobs: docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest - name: Logout from DockerHub - run: docker logout + run: docker logout From 07c8d3deae41389e9dd5aa216d5aa6b0d603e23d Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 10:35:05 +0530 Subject: [PATCH 08/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index b0f388cae..036b0503c 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -8,6 +8,7 @@ on: push: branches: - master + - multiPlatform-Feature tags: - 'v*.*' From 5df64d2e2a23c8ea6ec0f48c53ecacd4bc3f769e Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 10:37:24 +0530 Subject: [PATCH 09/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 036b0503c..05125b138 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -1,14 +1,10 @@ name: Build and Push Docker Image on: - # To enable manual triggering of this workflow workflow_dispatch: - - # Trigger for pushes to master and tags push: branches: - master - - multiPlatform-Feature tags: - 'v*.*' @@ -64,13 +60,13 @@ jobs: run: bash ./docker-compose.sh pull - name: Build and Push Multi-Architecture Images - uses: bash ./docker-compose.sh build-multiarch - with: - context: . - platforms: ${{ matrix.platform }} - push: true - tags: ${{ env.IMAGE_NAME }}:latest - labels: ${{ steps.meta.outputs.labels }} + run: | + bash ./docker-compose.sh build-multiarch \ + --context . \ + --platforms ${{ matrix.platform }} \ + --push \ + --tags ${{ env.IMAGE_NAME }}:latest \ + --labels ${{ steps.meta.outputs.labels }} - name: Export digest id: export_digest @@ -104,8 +100,7 @@ jobs: ${{ env.IMAGE_NAME }}@sha256:${{ env.DIGEST }} - name: Inspect image - run: | - docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest + run: docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest - name: Logout from DockerHub - run: docker logout + run: docker logout From 9e520d9455b226c1a8ddae3b2b5ff62358bb8182 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 10:47:39 +0530 Subject: [PATCH 10/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 05125b138..2bfa1fb7d 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -5,6 +5,7 @@ on: push: branches: - master + - multiPlatform-Feature tags: - 'v*.*' @@ -77,7 +78,7 @@ jobs: - name: Logout from DockerHub run: docker logout - push: + create-manifest: runs-on: ubuntu-latest needs: build steps: From 26b1ea576ec1b516121909fb5414eee0c3e6d581 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 11:02:43 +0530 Subject: [PATCH 11/93] Update docker-compose.sh --- docker-compose.sh | 9 --------- 1 file changed, 9 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index cb7fc8a63..fb13d8b55 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -66,15 +66,6 @@ sub_build() { ln -sf tools/cli/.dockerignore .dockerignore $DOCKER_COMPOSE -f docker-compose.yml build --force-rm cli - - # Multi-architecture build setup - docker buildx create --use --name multiarch-builder - docker buildx inspect --bootstrap - - $DOCKER_COMPOSE -f docker-compose-multiarch.yml build - $DOCKER_COMPOSE -f docker-compose-multiarch.yml push - - docker buildx rm multiarch-builder } # Build MetaCall Docker Compose without cache (link manually dockerignore files) From 42c0aa81b82299acd80f6f20316138a050a8cbcb Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 11:10:02 +0530 Subject: [PATCH 12/93] Update docker-compose.sh --- docker-compose.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docker-compose.sh b/docker-compose.sh index fb13d8b55..e3c3334eb 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -83,6 +83,17 @@ sub_rebuild() { $DOCKER_COMPOSE -f docker-compose.yml build --force-rm --no-cache cli } +# Build MetaCall Docker Compose (multi-architecture) +sub_build_multiarch() { + if [ -z "$IMAGE_NAME" ]; then + echo "Error: IMAGE_NAME variable not defined" + exit 1 + fi + + # Build multi-architecture images using docker-compose-multiarch.yml + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm +} + # Build MetaCall Docker Compose for testing (link manually dockerignore files) sub_test() { # Disable BuildKit as workaround due to log limits (TODO: https://github.com/docker/buildx/issues/484) @@ -314,6 +325,9 @@ case "$1" in rebuild) sub_rebuild ;; + build-multiarch) + sub_build_multiarch + ;; test) sub_test ;; From d5282955983c72f6049e37c4bac8138a58625763 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 11:14:29 +0530 Subject: [PATCH 13/93] Update docker-compose.sh --- docker-compose.sh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index e3c3334eb..6d1d4b75d 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -83,15 +83,24 @@ sub_rebuild() { $DOCKER_COMPOSE -f docker-compose.yml build --force-rm --no-cache cli } -# Build MetaCall Docker Compose (multi-architecture) +# Build MetaCall Docker Compose (multi-architecture) using Buildx sub_build_multiarch() { if [ -z "$IMAGE_NAME" ]; then echo "Error: IMAGE_NAME variable not defined" exit 1 fi - # Build multi-architecture images using docker-compose-multiarch.yml - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm + # Create a new builder instance + docker buildx create --use + + # Build multi-architecture images using Buildx + docker buildx build --file Dockerfile --platform linux/amd64,linux/arm64 \ + --tag $IMAGE_NAME:latest \ + --tag $IMAGE_NAME:latest \ + --push . + + # Optionally, remove the builder instance after use + docker buildx rm } # Build MetaCall Docker Compose for testing (link manually dockerignore files) From 000a29372ed86b37a62e2919c0bd42c704923a51 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 11:30:10 +0530 Subject: [PATCH 14/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 30 +++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 2bfa1fb7d..c42948979 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -1,11 +1,13 @@ name: Build and Push Docker Image on: + # To enable manual triggering of this workflow workflow_dispatch: + + # Trigger for pushes to master and tags push: branches: - master - - multiPlatform-Feature tags: - 'v*.*' @@ -56,29 +58,27 @@ jobs: run: | platform=${{ matrix.platform }} echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV - - name: Pull MetaCall Docker Images run: bash ./docker-compose.sh pull - + - name: Build and Push Multi-Architecture Images - run: | - bash ./docker-compose.sh build-multiarch \ - --context . \ - --platforms ${{ matrix.platform }} \ - --push \ - --tags ${{ env.IMAGE_NAME }}:latest \ - --labels ${{ steps.meta.outputs.labels }} + uses: bash ./docker-compose.sh build-multiarch + with: + context: . + platforms: ${{ matrix.platform }} + push: true + tags: ${{ env.IMAGE_NAME }}:latest + labels: ${{ steps.meta.outputs.labels }} - name: Export digest id: export_digest run: | digest=$(docker inspect --format='{{index .RepoDigests 0}}' ${{ env.IMAGE_NAME }}:latest) echo "DIGEST=${digest#*:}" >> $GITHUB_ENV - - name: Logout from DockerHub run: docker logout - create-manifest: + push: runs-on: ubuntu-latest needs: build steps: @@ -99,9 +99,9 @@ jobs: docker buildx imagetools create --tag ${{ env.IMAGE_NAME }}:latest \ --tag ${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} \ ${{ env.IMAGE_NAME }}@sha256:${{ env.DIGEST }} - - name: Inspect image - run: docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest - + run: | + docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest + - name: Logout from DockerHub run: docker logout From 4a8251558aed30a75d52aa5ee7d0edfddbd60453 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 11:34:53 +0530 Subject: [PATCH 15/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index c42948979..51c36e85c 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -58,11 +58,12 @@ jobs: run: | platform=${{ matrix.platform }} echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV + - name: Pull MetaCall Docker Images run: bash ./docker-compose.sh pull - name: Build and Push Multi-Architecture Images - uses: bash ./docker-compose.sh build-multiarch + run: bash ./docker-compose.sh build-multiarch with: context: . platforms: ${{ matrix.platform }} @@ -75,6 +76,7 @@ jobs: run: | digest=$(docker inspect --format='{{index .RepoDigests 0}}' ${{ env.IMAGE_NAME }}:latest) echo "DIGEST=${digest#*:}" >> $GITHUB_ENV + - name: Logout from DockerHub run: docker logout @@ -99,6 +101,7 @@ jobs: docker buildx imagetools create --tag ${{ env.IMAGE_NAME }}:latest \ --tag ${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} \ ${{ env.IMAGE_NAME }}@sha256:${{ env.DIGEST }} + - name: Inspect image run: | docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest From 19b820e5a2b4ffe68abda187e8d353d017e469dc Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 11:41:55 +0530 Subject: [PATCH 16/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index a99a4e350..b1c4cbeba 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -36,3 +36,4 @@ services: - linux/amd64 - linux/arm64 image: metacall/core:cli + From cff32556decc25d1cb12a993138e58a893e7e891 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 11:47:40 +0530 Subject: [PATCH 17/93] Update multiarch-dockerhub.yml From a0bbcd9b81cf888ddb2fb80310472139f6b97638 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 11:51:48 +0530 Subject: [PATCH 18/93] Update docker-compose.sh --- docker-compose.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index 6d1d4b75d..267bd4548 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -83,24 +83,22 @@ sub_rebuild() { $DOCKER_COMPOSE -f docker-compose.yml build --force-rm --no-cache cli } -# Build MetaCall Docker Compose (multi-architecture) using Buildx sub_build_multiarch() { if [ -z "$IMAGE_NAME" ]; then echo "Error: IMAGE_NAME variable not defined" exit 1 fi - # Create a new builder instance - docker buildx create --use + # Create a new builder instance and give it a name + docker buildx create --name mybuilder --use # Build multi-architecture images using Buildx - docker buildx build --file Dockerfile --platform linux/amd64,linux/arm64 \ - --tag $IMAGE_NAME:latest \ + docker buildx build --file Dockerfile --platform linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64 \ --tag $IMAGE_NAME:latest \ --push . # Optionally, remove the builder instance after use - docker buildx rm + docker buildx rm mybuilder } # Build MetaCall Docker Compose for testing (link manually dockerignore files) From 479ef6b0d3b57f85086ab08506f7555e0a83b21d Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 11:52:22 +0530 Subject: [PATCH 19/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 51c36e85c..da07694bf 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -63,13 +63,9 @@ jobs: run: bash ./docker-compose.sh pull - name: Build and Push Multi-Architecture Images - run: bash ./docker-compose.sh build-multiarch - with: - context: . - platforms: ${{ matrix.platform }} - push: true - tags: ${{ env.IMAGE_NAME }}:latest - labels: ${{ steps.meta.outputs.labels }} + run: | + chmod +x ./docker-compose.sh + ./docker-compose.sh sub_build_multiarch - name: Export digest id: export_digest @@ -105,6 +101,6 @@ jobs: - name: Inspect image run: | docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest - + - name: Logout from DockerHub run: docker logout From fd87945174900ddab19997031a024c8c5614c510 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 11:55:34 +0530 Subject: [PATCH 20/93] Delete .github/workflows/clang-format.yml --- .github/workflows/clang-format.yml | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 .github/workflows/clang-format.yml diff --git a/.github/workflows/clang-format.yml b/.github/workflows/clang-format.yml deleted file mode 100644 index 243d5b235..000000000 --- a/.github/workflows/clang-format.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Code Formatting Check - -on: [push, pull_request] - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - formatting-check: - name: Formatting Check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Run clang-format style check for C/C++. - uses: jidicula/clang-format-action@v4.9.0 - with: - clang-format-version: '11' - check-path: 'source' From baa1d4e982964a01ce17680a1f997956b10f7c83 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 11:57:09 +0530 Subject: [PATCH 21/93] Update docker-compose.sh --- docker-compose.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.sh b/docker-compose.sh index 267bd4548..b683edb3e 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -16,7 +16,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. # set -euxo pipefail From 0607bf4bc415ed070c845084a15f39f8705da017 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 11:58:58 +0530 Subject: [PATCH 22/93] Create clang-format.yml --- .github/workflows/clang-format.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/workflows/clang-format.yml diff --git a/.github/workflows/clang-format.yml b/.github/workflows/clang-format.yml new file mode 100644 index 000000000..243d5b235 --- /dev/null +++ b/.github/workflows/clang-format.yml @@ -0,0 +1,19 @@ +name: Code Formatting Check + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + formatting-check: + name: Formatting Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Run clang-format style check for C/C++. + uses: jidicula/clang-format-action@v4.9.0 + with: + clang-format-version: '11' + check-path: 'source' From e0fed9104c8f308e4757d1eda571666140bf9896 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 12:04:04 +0530 Subject: [PATCH 23/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index da07694bf..60cbd3b46 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -76,7 +76,7 @@ jobs: - name: Logout from DockerHub run: docker logout - push: + push_manifest: runs-on: ubuntu-latest needs: build steps: From 7fc93bf2d3bf2646f15e836141ac90b4b0d7690d Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 12:06:03 +0530 Subject: [PATCH 24/93] Update multiarch-dockerhub.yml From a1b75a25834bea85adc7e02c4c60145ef58ff799 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 12:48:19 +0530 Subject: [PATCH 25/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 60cbd3b46..90246863d 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -1,10 +1,7 @@ name: Build and Push Docker Image on: - # To enable manual triggering of this workflow workflow_dispatch: - - # Trigger for pushes to master and tags push: branches: - master From a568bff13b94c7a27e9e986bad1c28d0e042793b Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 12:50:16 +0530 Subject: [PATCH 26/93] Update multiarch-dockerhub.yml From 711c6939352763d69bb23e3d5542df0e9600246e Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 13:01:46 +0530 Subject: [PATCH 27/93] Create test.yml --- .github/workflows/test.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..5da5a12cf --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,29 @@ +name: Build and Push Docker Image + +on: + workflow_dispatch: + push: + branches: + - master + tags: + - 'v*.*' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout the code + uses: actions/checkout@v3 + + - name: Run a sample command + run: echo "Building Docker image..." + + push_manifest: + runs-on: ubuntu-latest + needs: build + steps: + - name: Checkout the code + uses: actions/checkout@v3 + + - name: Run a sample command + run: echo "Pushing Docker manifest..." From 61068a614f810958a7997b448de6339d0476fb04 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Sun, 21 Jul 2024 13:07:02 +0530 Subject: [PATCH 28/93] Delete .github/workflows/test.yml --- .github/workflows/test.yml | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 5da5a12cf..000000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Build and Push Docker Image - -on: - workflow_dispatch: - push: - branches: - - master - tags: - - 'v*.*' - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout the code - uses: actions/checkout@v3 - - - name: Run a sample command - run: echo "Building Docker image..." - - push_manifest: - runs-on: ubuntu-latest - needs: build - steps: - - name: Checkout the code - uses: actions/checkout@v3 - - - name: Run a sample command - run: echo "Pushing Docker manifest..." From 8c9fc58a0f583608d141e411c5744c1f823a0ffd Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 10:34:38 +0530 Subject: [PATCH 29/93] Update docker-compose.sh --- docker-compose.sh | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index b683edb3e..244685045 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -16,7 +16,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. # set -euxo pipefail @@ -66,6 +66,9 @@ sub_build() { ln -sf tools/cli/.dockerignore .dockerignore $DOCKER_COMPOSE -f docker-compose.yml build --force-rm cli + + ln -sf tools/cli/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm cli } # Build MetaCall Docker Compose without cache (link manually dockerignore files) @@ -83,24 +86,6 @@ sub_rebuild() { $DOCKER_COMPOSE -f docker-compose.yml build --force-rm --no-cache cli } -sub_build_multiarch() { - if [ -z "$IMAGE_NAME" ]; then - echo "Error: IMAGE_NAME variable not defined" - exit 1 - fi - - # Create a new builder instance and give it a name - docker buildx create --name mybuilder --use - - # Build multi-architecture images using Buildx - docker buildx build --file Dockerfile --platform linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64 \ - --tag $IMAGE_NAME:latest \ - --push . - - # Optionally, remove the builder instance after use - docker buildx rm mybuilder -} - # Build MetaCall Docker Compose for testing (link manually dockerignore files) sub_test() { # Disable BuildKit as workaround due to log limits (TODO: https://github.com/docker/buildx/issues/484) @@ -332,9 +317,6 @@ case "$1" in rebuild) sub_rebuild ;; - build-multiarch) - sub_build_multiarch - ;; test) sub_test ;; From d88378629fd1d6978a548588255086de5b23f53f Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 10:50:05 +0530 Subject: [PATCH 30/93] Update docker-compose.sh --- docker-compose.sh | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index 244685045..bca4e3582 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -66,9 +66,43 @@ sub_build() { ln -sf tools/cli/.dockerignore .dockerignore $DOCKER_COMPOSE -f docker-compose.yml build --force-rm cli +} + +sub_build_multiarch() { + + # Enable BuildKit and set Docker CLI build for Compose + export DOCKER_BUILDKIT=1 + export COMPOSE_DOCKER_CLI_BUILD=1 + + if [ -z "$IMAGE_NAME" ]; then + echo "Error: IMAGE_NAME variable not defined" + exit 1 + fi + + # Create a new builder instance and use it + docker buildx create --name mybuilder --use + + # Inspect the builder instance to ensure it's correctly set up + docker buildx inspect --bootstrap + + # Build multi-architecture images using Buildx + ln -sf tools/deps/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm cli + + ln -sf tools/dev/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm cli + + ln -sf tools/runtime/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm cli + + ln -sf tools/cli/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm cli + --tag $IMAGE_NAME:latest \ + --push \ + --progress plain - ln -sf tools/cli/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm cli + # Optionally, remove the builder instance after use + docker buildx rm mybuilder } # Build MetaCall Docker Compose without cache (link manually dockerignore files) @@ -317,6 +351,9 @@ case "$1" in rebuild) sub_rebuild ;; + build-multiarch) + sub_build_multiarch + ;; test) sub_test ;; From 8d265d4e87be8cab609aed6640c40edf7c290e1f Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 17:51:50 +0530 Subject: [PATCH 31/93] Update docker-compose.sh --- docker-compose.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index bca4e3582..db55634ed 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -87,13 +87,13 @@ sub_build_multiarch() { # Build multi-architecture images using Buildx ln -sf tools/deps/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm cli + $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm deps ln -sf tools/dev/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm cli + $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm dev ln -sf tools/runtime/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm cli + $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm runtime ln -sf tools/cli/.dockerignore .dockerignore $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm cli From c1c486336f76b10f3ea9c5efab3aa3bbd2b880b3 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 18:05:27 +0530 Subject: [PATCH 32/93] Update docker-compose.sh --- docker-compose.sh | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index db55634ed..bfa884eec 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -87,20 +87,17 @@ sub_build_multiarch() { # Build multi-architecture images using Buildx ln -sf tools/deps/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm deps + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build-multiarch --force-rm deps ln -sf tools/dev/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm dev + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build-multiarch --force-rm dev ln -sf tools/runtime/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm runtime + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build-multiarch --force-rm runtime ln -sf tools/cli/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose-multiarch.yml build-multiarch --force-rm cli - --tag $IMAGE_NAME:latest \ - --push \ - --progress plain - + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build-multiarch --force-rm cli + # Optionally, remove the builder instance after use docker buildx rm mybuilder } From e40a5f98bbb626a344a03440ba51e5e787ae9742 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 18:06:12 +0530 Subject: [PATCH 33/93] Update multiarch-dockerhub.yml From a2593eebeaa2b00e7a04a99990df0daa1380cfc9 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 18:12:22 +0530 Subject: [PATCH 34/93] Update docker-compose.sh --- docker-compose.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index bfa884eec..e8093cf09 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -87,16 +87,16 @@ sub_build_multiarch() { # Build multi-architecture images using Buildx ln -sf tools/deps/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build-multiarch --force-rm deps + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml --force-rm deps ln -sf tools/dev/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build-multiarch --force-rm dev + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml --force-rm dev ln -sf tools/runtime/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build-multiarch --force-rm runtime + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml --force-rm runtime ln -sf tools/cli/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build-multiarch --force-rm cli + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml --force-rm cli # Optionally, remove the builder instance after use docker buildx rm mybuilder From 0a295e59e534d706b47dc00ba76171defd2fa687 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 18:15:23 +0530 Subject: [PATCH 35/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 90246863d..c86480207 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -5,6 +5,7 @@ on: push: branches: - master + - multiPlatform-Feature tags: - 'v*.*' @@ -58,12 +59,11 @@ jobs: - name: Pull MetaCall Docker Images run: bash ./docker-compose.sh pull - + - name: Build and Push Multi-Architecture Images run: | - chmod +x ./docker-compose.sh - ./docker-compose.sh sub_build_multiarch - + bash ./docker-compose.sh build-multiarch + - name: Export digest id: export_digest run: | @@ -73,7 +73,7 @@ jobs: - name: Logout from DockerHub run: docker logout - push_manifest: + create-manifest: runs-on: ubuntu-latest needs: build steps: @@ -96,8 +96,7 @@ jobs: ${{ env.IMAGE_NAME }}@sha256:${{ env.DIGEST }} - name: Inspect image - run: | - docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest + run: docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest - name: Logout from DockerHub run: docker logout From 34f3fc377de97ddb245f13dbe4dc0126fb7acfce Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 18:17:47 +0530 Subject: [PATCH 36/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index c86480207..aa3869d49 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -62,7 +62,7 @@ jobs: - name: Build and Push Multi-Architecture Images run: | - bash ./docker-compose.sh build-multiarch + bash ./docker-compose.sh sub_build_multiarch - name: Export digest id: export_digest From 7de6b7d2ef926e5ea5f1b781b27d344532e0b930 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 18:22:05 +0530 Subject: [PATCH 37/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index aa3869d49..4ab90267b 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -63,6 +63,7 @@ jobs: - name: Build and Push Multi-Architecture Images run: | bash ./docker-compose.sh sub_build_multiarch + docker pull ${{ env.IMAGE_NAME }}:latest - name: Export digest id: export_digest From 4b42ab8679b9de917be35d1458c8c29ffa1b9e4f Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 18:31:34 +0530 Subject: [PATCH 38/93] Update docker-compose.sh --- docker-compose.sh | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index e8093cf09..b2279041f 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -73,18 +73,7 @@ sub_build_multiarch() { # Enable BuildKit and set Docker CLI build for Compose export DOCKER_BUILDKIT=1 export COMPOSE_DOCKER_CLI_BUILD=1 - - if [ -z "$IMAGE_NAME" ]; then - echo "Error: IMAGE_NAME variable not defined" - exit 1 - fi - - # Create a new builder instance and use it - docker buildx create --name mybuilder --use - - # Inspect the builder instance to ensure it's correctly set up - docker buildx inspect --bootstrap - + # Build multi-architecture images using Buildx ln -sf tools/deps/.dockerignore .dockerignore $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml --force-rm deps @@ -97,9 +86,6 @@ sub_build_multiarch() { ln -sf tools/cli/.dockerignore .dockerignore $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml --force-rm cli - - # Optionally, remove the builder instance after use - docker buildx rm mybuilder } # Build MetaCall Docker Compose without cache (link manually dockerignore files) From 82cba5ac3b14bfeedde919124c6ac129943c1069 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 18:35:36 +0530 Subject: [PATCH 39/93] Update docker-compose.sh --- docker-compose.sh | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index b2279041f..267e7d744 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -26,6 +26,8 @@ export COMPOSE_DOCKER_CLI_BUILD=1 export DOCKER_BUILDKIT=1 export BUILDKIT_PROGRESS=plain export PROGRESS_NO_TRUNC=1 +export DOCKER_BUILDKIT=1 +export COMPOSE_DOCKER_CLI_BUILD=1 # Check if docker compose command is available if [ -x "$(command -v docker-compose)" ]; then @@ -69,13 +71,8 @@ sub_build() { } sub_build_multiarch() { - - # Enable BuildKit and set Docker CLI build for Compose - export DOCKER_BUILDKIT=1 - export COMPOSE_DOCKER_CLI_BUILD=1 - # Build multi-architecture images using Buildx - ln -sf tools/deps/.dockerignore .dockerignore + ln -sf tools/deps/.dockerignore .dockerignore $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml --force-rm deps ln -sf tools/dev/.dockerignore .dockerignore From b34ee5b22a767a69647d6f540913461be8bc4270 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 18:44:33 +0530 Subject: [PATCH 40/93] Update docker-compose.sh --- docker-compose.sh | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index 267e7d744..83c6202da 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -26,8 +26,6 @@ export COMPOSE_DOCKER_CLI_BUILD=1 export DOCKER_BUILDKIT=1 export BUILDKIT_PROGRESS=plain export PROGRESS_NO_TRUNC=1 -export DOCKER_BUILDKIT=1 -export COMPOSE_DOCKER_CLI_BUILD=1 # Check if docker compose command is available if [ -x "$(command -v docker-compose)" ]; then @@ -71,18 +69,37 @@ sub_build() { } sub_build_multiarch() { - # Build multi-architecture images using Buildx - ln -sf tools/deps/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml --force-rm deps - ln -sf tools/dev/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml --force-rm dev + # Enable BuildKit and set Docker CLI build for Compose + export DOCKER_BUILDKIT=1 + export COMPOSE_DOCKER_CLI_BUILD=1 - ln -sf tools/runtime/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml --force-rm runtime + if [ -z "$IMAGE_NAME" ]; then + echo "Error: IMAGE_NAME variable not defined" + exit 1 + fi - ln -sf tools/cli/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml --force-rm cli + # Create a new builder instance and use it + docker buildx create --name mybuilder --use + + # Inspect the builder instance to ensure it's correctly set up + docker buildx inspect --bootstrap + + # Build multi-architecture images using Buildx + ln -sf tools/deps/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml build --force-rm deps + + ln -sf tools/dev/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml build --force-rm dev + + ln -sf tools/runtime/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml build --force-rm runtime + + ln -sf tools/cli/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml build --force-rm cli + + # Optionally, remove the builder instance after use + docker buildx rm mybuilder } # Build MetaCall Docker Compose without cache (link manually dockerignore files) @@ -328,12 +345,12 @@ case "$1" in build) sub_build ;; + build-multiarch) + sub_build_multiarch + ;; rebuild) sub_rebuild ;; - build-multiarch) - sub_build_multiarch - ;; test) sub_test ;; From d285120095ff2c0fc98be2a01774a8a89a11dee0 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 18:57:06 +0530 Subject: [PATCH 41/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 4ab90267b..ef21c2e22 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -62,7 +62,7 @@ jobs: - name: Build and Push Multi-Architecture Images run: | - bash ./docker-compose.sh sub_build_multiarch + bash ./docker-compose.sh build-multiarch docker pull ${{ env.IMAGE_NAME }}:latest - name: Export digest From f77ea3332ea09c1c78375541dbae748974df1757 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 19:12:07 +0530 Subject: [PATCH 42/93] Update docker-compose.sh --- docker-compose.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index 83c6202da..52ef42bbf 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -87,16 +87,16 @@ sub_build_multiarch() { # Build multi-architecture images using Buildx ln -sf tools/deps/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml build --force-rm deps + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm deps ln -sf tools/dev/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml build --force-rm dev + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm dev ln -sf tools/runtime/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml build --force-rm runtime + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm runtime ln -sf tools/cli/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose.multiarch.yml build --force-rm cli + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm cli # Optionally, remove the builder instance after use docker buildx rm mybuilder From 11e6881bf2d52ea35b584ab1c89b17ddacd55c57 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 20:55:42 +0530 Subject: [PATCH 43/93] Update docker-compose.sh --- docker-compose.sh | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index 52ef42bbf..446ce2da6 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -86,17 +86,10 @@ sub_build_multiarch() { docker buildx inspect --bootstrap # Build multi-architecture images using Buildx - ln -sf tools/deps/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm deps - - ln -sf tools/dev/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm dev - - ln -sf tools/runtime/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm runtime - - ln -sf tools/cli/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm cli + docker buildx build --platform linux/amd64,linux/arm64 -t metacall/core:deps -f tools/deps/Dockerfile . --push + docker buildx build --platform linux/amd64,linux/arm64 -t metacall/core:dev -f tools/dev/Dockerfile . --push + docker buildx build --platform linux/amd64,linux/arm64 -t metacall/core:runtime -f tools/runtime/Dockerfile . --push + docker buildx build --platform linux/amd64,linux/arm64 -t metacall/core:cli -f tools/cli/Dockerfile . --push # Optionally, remove the builder instance after use docker buildx rm mybuilder From 3d4ad4d2e1da5652bf6b70d7100dab8678afbb8d Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 21:01:15 +0530 Subject: [PATCH 44/93] Update docker-compose.sh --- docker-compose.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index 446ce2da6..52ef42bbf 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -86,10 +86,17 @@ sub_build_multiarch() { docker buildx inspect --bootstrap # Build multi-architecture images using Buildx - docker buildx build --platform linux/amd64,linux/arm64 -t metacall/core:deps -f tools/deps/Dockerfile . --push - docker buildx build --platform linux/amd64,linux/arm64 -t metacall/core:dev -f tools/dev/Dockerfile . --push - docker buildx build --platform linux/amd64,linux/arm64 -t metacall/core:runtime -f tools/runtime/Dockerfile . --push - docker buildx build --platform linux/amd64,linux/arm64 -t metacall/core:cli -f tools/cli/Dockerfile . --push + ln -sf tools/deps/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm deps + + ln -sf tools/dev/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm dev + + ln -sf tools/runtime/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm runtime + + ln -sf tools/cli/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm cli # Optionally, remove the builder instance after use docker buildx rm mybuilder From 6aa1caa47a330eac8de8b8b45aeb6cc66c70f2f3 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 21:10:51 +0530 Subject: [PATCH 45/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index b1c4cbeba..1dc6b556f 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -1,4 +1,4 @@ -version: '3.8' +version: '3.9' services: deps: From e895c0341e7a93428a86eebbb84988da657ab17e Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 22 Jul 2024 21:12:38 +0530 Subject: [PATCH 46/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index ef21c2e22..18a6574e1 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -38,7 +38,7 @@ jobs: uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub uses: docker/login-action@v2 @@ -82,7 +82,7 @@ jobs: uses: actions/checkout@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub uses: docker/login-action@v2 From 059b3931a8aed6b6cf04a6dd4172340fef01bc7c Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 15:48:20 +0530 Subject: [PATCH 47/93] Update docker-compose.sh --- docker-compose.sh | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index 52ef42bbf..fa3e1e19b 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -79,27 +79,20 @@ sub_build_multiarch() { exit 1 fi - # Create a new builder instance and use it - docker buildx create --name mybuilder --use + # Create a new builder instance if it doesn't already exist + docker buildx create --name mybuilder --use || true # Inspect the builder instance to ensure it's correctly set up docker buildx inspect --bootstrap - # Build multi-architecture images using Buildx - ln -sf tools/deps/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm deps - - ln -sf tools/dev/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm dev - - ln -sf tools/runtime/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm runtime - - ln -sf tools/cli/.dockerignore .dockerignore - $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm cli + # Build multi-architecture images using Buildx and push to the registry + docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:deps -f tools/deps/Dockerfile . + docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:dev -f tools/dev/Dockerfile . + docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:runtime -f tools/runtime/Dockerfile . + docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:cli -f tools/cli/Dockerfile . # Optionally, remove the builder instance after use - docker buildx rm mybuilder + docker buildx rm mybuilder || true } # Build MetaCall Docker Compose without cache (link manually dockerignore files) From 134bc0b4565c4724280a07f3d85604b84fb024b8 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 15:48:51 +0530 Subject: [PATCH 48/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index 1dc6b556f..fff87b1fd 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -2,38 +2,13 @@ version: '3.9' services: deps: - build: - context: . - dockerfile: tools/deps/Dockerfile - platforms: - - linux/amd64 - - linux/arm64 image: metacall/core:deps dev: - build: - context: . - dockerfile: tools/dev/Dockerfile - platforms: - - linux/amd64 - - linux/arm64 image: metacall/core:dev runtime: - build: - context: . - dockerfile: tools/runtime/Dockerfile - platforms: - - linux/amd64 - - linux/arm64 image: metacall/core:runtime cli: - build: - context: . - dockerfile: tools/cli/Dockerfile - platforms: - - linux/amd64 - - linux/arm64 image: metacall/core:cli - From 657764b63c57ff8b48a44d7d960d79fdf541a964 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 15:55:34 +0530 Subject: [PATCH 49/93] Update docker-compose.sh --- docker-compose.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.sh b/docker-compose.sh index fa3e1e19b..3ca27541d 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -86,7 +86,7 @@ sub_build_multiarch() { docker buildx inspect --bootstrap # Build multi-architecture images using Buildx and push to the registry - docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:deps -f tools/deps/Dockerfile . + docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:deps \ --build-arg METACALL_BASE_IMAGE=ubuntu:20.04 \ -f tools/deps/Dockerfile . docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:dev -f tools/dev/Dockerfile . docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:runtime -f tools/runtime/Dockerfile . docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:cli -f tools/cli/Dockerfile . From 0c298650a0f6812449397607531c8407f8ec1deb Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 15:58:38 +0530 Subject: [PATCH 50/93] Update docker-compose.sh --- docker-compose.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docker-compose.sh b/docker-compose.sh index 3ca27541d..0baa15fbb 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -86,7 +86,12 @@ sub_build_multiarch() { docker buildx inspect --bootstrap # Build multi-architecture images using Buildx and push to the registry - docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:deps \ --build-arg METACALL_BASE_IMAGE=ubuntu:20.04 \ -f tools/deps/Dockerfile . + docker buildx build --platform linux/amd64,linux/arm64 --push \ + -t metacall/core:deps \ + --build-arg METACALL_BASE_IMAGE=ubuntu:20.04 \ + -f tools/deps/Dockerfile \ + . + docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:dev -f tools/dev/Dockerfile . docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:runtime -f tools/runtime/Dockerfile . docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:cli -f tools/cli/Dockerfile . From 708bc896c36d5f14960e5d68131073becb772634 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 16:03:37 +0530 Subject: [PATCH 51/93] Update docker-compose.sh --- docker-compose.sh | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index 0baa15fbb..99a2a2180 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -69,7 +69,6 @@ sub_build() { } sub_build_multiarch() { - # Enable BuildKit and set Docker CLI build for Compose export DOCKER_BUILDKIT=1 export COMPOSE_DOCKER_CLI_BUILD=1 @@ -79,24 +78,37 @@ sub_build_multiarch() { exit 1 fi + # Define image names and Dockerfiles + declare -A images=( + ["deps"]="tools/deps/Dockerfile" + ["dev"]="tools/dev/Dockerfile" + ["runtime"]="tools/runtime/Dockerfile" + ["cli"]="tools/cli/Dockerfile" + ) + # Create a new builder instance if it doesn't already exist - docker buildx create --name mybuilder --use || true + if ! docker buildx inspect mybuilder &>/dev/null; then + echo "Creating a new builder instance 'mybuilder'..." + docker buildx create --name mybuilder --use + else + echo "Using existing builder instance 'mybuilder'." + fi # Inspect the builder instance to ensure it's correctly set up + echo "Inspecting and bootstrapping the builder instance..." docker buildx inspect --bootstrap - # Build multi-architecture images using Buildx and push to the registry - docker buildx build --platform linux/amd64,linux/arm64 --push \ - -t metacall/core:deps \ - --build-arg METACALL_BASE_IMAGE=ubuntu:20.04 \ - -f tools/deps/Dockerfile \ - . - - docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:dev -f tools/dev/Dockerfile . - docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:runtime -f tools/runtime/Dockerfile . - docker buildx build --platform linux/amd64,linux/arm64 --push -t metacall/core:cli -f tools/cli/Dockerfile . + # Build and push multi-architecture images + for image in "${!images[@]}"; do + echo "Building and pushing image: metacall/core:$image" + docker buildx build --platform linux/amd64,linux/arm64 --push \ + -t metacall/core:$image \ + --build-arg METACALL_BASE_IMAGE=ubuntu:20.04 \ + -f ${images[$image]} . + done # Optionally, remove the builder instance after use + echo "Removing builder instance 'mybuilder'..." docker buildx rm mybuilder || true } From 2bfbee9c493b32d36b6ad6e5181c03503258cdf9 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 16:10:52 +0530 Subject: [PATCH 52/93] Update docker-compose.sh --- docker-compose.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index 99a2a2180..e4fb2561f 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -89,14 +89,14 @@ sub_build_multiarch() { # Create a new builder instance if it doesn't already exist if ! docker buildx inspect mybuilder &>/dev/null; then echo "Creating a new builder instance 'mybuilder'..." - docker buildx create --name mybuilder --use + docker buildx create --name mybuilder --use || { echo "Failed to create builder"; exit 1; } else echo "Using existing builder instance 'mybuilder'." fi # Inspect the builder instance to ensure it's correctly set up echo "Inspecting and bootstrapping the builder instance..." - docker buildx inspect --bootstrap + docker buildx inspect --bootstrap || { echo "Failed to inspect and bootstrap builder"; exit 1; } # Build and push multi-architecture images for image in "${!images[@]}"; do @@ -104,12 +104,12 @@ sub_build_multiarch() { docker buildx build --platform linux/amd64,linux/arm64 --push \ -t metacall/core:$image \ --build-arg METACALL_BASE_IMAGE=ubuntu:20.04 \ - -f ${images[$image]} . + -f ${images[$image]} . || { echo "Failed to build and push image: metacall/core:$image"; exit 1; } done # Optionally, remove the builder instance after use echo "Removing builder instance 'mybuilder'..." - docker buildx rm mybuilder || true + docker buildx rm mybuilder || { echo "Failed to remove builder"; exit 1; } } # Build MetaCall Docker Compose without cache (link manually dockerignore files) From e3cd3c359a5f0de0bc3c281ff23f7d9b23368a32 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 16:13:32 +0530 Subject: [PATCH 53/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index fff87b1fd..42152b931 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -2,13 +2,37 @@ version: '3.9' services: deps: + build: + context: . + dockerfile: tools/deps/Dockerfile + platforms: + - linux/amd64 + - linux/arm64 image: metacall/core:deps dev: + build: + context: . + dockerfile: tools/dev/Dockerfile + platforms: + - linux/amd64 + - linux/arm64 image: metacall/core:dev runtime: + build: + context: . + dockerfile: tools/runtime/Dockerfile + platforms: + - linux/amd64 + - linux/arm64 image: metacall/core:runtime cli: + build: + context: . + dockerfile: tools/cli/Dockerfile + platforms: + - linux/amd64 + - linux/arm64 image: metacall/core:cli From 228bbcb17ab6dafb97dee88d7668e2506d810967 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 16:21:00 +0530 Subject: [PATCH 54/93] Update docker-compose.sh --- docker-compose.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index e4fb2561f..248e7d18c 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -86,6 +86,12 @@ sub_build_multiarch() { ["cli"]="tools/cli/Dockerfile" ) + # Check Docker login status + if ! docker info | grep -q 'Username'; then + echo "Error: Docker login required" + exit 1 + fi + # Create a new builder instance if it doesn't already exist if ! docker buildx inspect mybuilder &>/dev/null; then echo "Creating a new builder instance 'mybuilder'..." @@ -96,7 +102,7 @@ sub_build_multiarch() { # Inspect the builder instance to ensure it's correctly set up echo "Inspecting and bootstrapping the builder instance..." - docker buildx inspect --bootstrap || { echo "Failed to inspect and bootstrap builder"; exit 1; } + docker buildx inspect --bootstrap || { echo "Failed to bootstrap builder"; exit 1; } # Build and push multi-architecture images for image in "${!images[@]}"; do @@ -104,12 +110,12 @@ sub_build_multiarch() { docker buildx build --platform linux/amd64,linux/arm64 --push \ -t metacall/core:$image \ --build-arg METACALL_BASE_IMAGE=ubuntu:20.04 \ - -f ${images[$image]} . || { echo "Failed to build and push image: metacall/core:$image"; exit 1; } + -f ${images[$image]} . || { echo "Failed to build or push image: metacall/core:$image"; exit 1; } done # Optionally, remove the builder instance after use echo "Removing builder instance 'mybuilder'..." - docker buildx rm mybuilder || { echo "Failed to remove builder"; exit 1; } + docker buildx rm mybuilder || echo "Failed to remove builder instance" } # Build MetaCall Docker Compose without cache (link manually dockerignore files) From 0e01e2b4f7b2cee1bb6cf079c11816b1e6f4843f Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 16:27:43 +0530 Subject: [PATCH 55/93] Update docker-compose.sh --- docker-compose.sh | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index 248e7d18c..dc9e50626 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -69,7 +69,6 @@ sub_build() { } sub_build_multiarch() { - # Enable BuildKit and set Docker CLI build for Compose export DOCKER_BUILDKIT=1 export COMPOSE_DOCKER_CLI_BUILD=1 @@ -78,7 +77,6 @@ sub_build_multiarch() { exit 1 fi - # Define image names and Dockerfiles declare -A images=( ["deps"]="tools/deps/Dockerfile" ["dev"]="tools/dev/Dockerfile" @@ -86,35 +84,20 @@ sub_build_multiarch() { ["cli"]="tools/cli/Dockerfile" ) - # Check Docker login status - if ! docker info | grep -q 'Username'; then - echo "Error: Docker login required" - exit 1 - fi - - # Create a new builder instance if it doesn't already exist if ! docker buildx inspect mybuilder &>/dev/null; then - echo "Creating a new builder instance 'mybuilder'..." - docker buildx create --name mybuilder --use || { echo "Failed to create builder"; exit 1; } - else - echo "Using existing builder instance 'mybuilder'." + docker buildx create --name mybuilder --use || exit 1 fi - # Inspect the builder instance to ensure it's correctly set up - echo "Inspecting and bootstrapping the builder instance..." - docker buildx inspect --bootstrap || { echo "Failed to bootstrap builder"; exit 1; } + docker buildx inspect --bootstrap || exit 1 - # Build and push multi-architecture images + platforms="linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64" for image in "${!images[@]}"; do - echo "Building and pushing image: metacall/core:$image" - docker buildx build --platform linux/amd64,linux/arm64 --push \ + docker buildx build --platform $platforms --push \ -t metacall/core:$image \ --build-arg METACALL_BASE_IMAGE=ubuntu:20.04 \ - -f ${images[$image]} . || { echo "Failed to build or push image: metacall/core:$image"; exit 1; } + -f ${images[$image]} . || exit 1 done - # Optionally, remove the builder instance after use - echo "Removing builder instance 'mybuilder'..." docker buildx rm mybuilder || echo "Failed to remove builder instance" } From e5255a75b5d2a88e340ce3e96fc2ad941aeccea5 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 16:30:32 +0530 Subject: [PATCH 56/93] Update docker-compose.sh --- docker-compose.sh | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index dc9e50626..52ef42bbf 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -69,6 +69,8 @@ sub_build() { } sub_build_multiarch() { + + # Enable BuildKit and set Docker CLI build for Compose export DOCKER_BUILDKIT=1 export COMPOSE_DOCKER_CLI_BUILD=1 @@ -77,28 +79,27 @@ sub_build_multiarch() { exit 1 fi - declare -A images=( - ["deps"]="tools/deps/Dockerfile" - ["dev"]="tools/dev/Dockerfile" - ["runtime"]="tools/runtime/Dockerfile" - ["cli"]="tools/cli/Dockerfile" - ) + # Create a new builder instance and use it + docker buildx create --name mybuilder --use - if ! docker buildx inspect mybuilder &>/dev/null; then - docker buildx create --name mybuilder --use || exit 1 - fi + # Inspect the builder instance to ensure it's correctly set up + docker buildx inspect --bootstrap + + # Build multi-architecture images using Buildx + ln -sf tools/deps/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm deps + + ln -sf tools/dev/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm dev - docker buildx inspect --bootstrap || exit 1 + ln -sf tools/runtime/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm runtime - platforms="linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64" - for image in "${!images[@]}"; do - docker buildx build --platform $platforms --push \ - -t metacall/core:$image \ - --build-arg METACALL_BASE_IMAGE=ubuntu:20.04 \ - -f ${images[$image]} . || exit 1 - done + ln -sf tools/cli/.dockerignore .dockerignore + $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm cli - docker buildx rm mybuilder || echo "Failed to remove builder instance" + # Optionally, remove the builder instance after use + docker buildx rm mybuilder } # Build MetaCall Docker Compose without cache (link manually dockerignore files) From 2298933aca86290875f4df25f8add9bc51b89061 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 16:33:09 +0530 Subject: [PATCH 57/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index 42152b931..16f0d5b59 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -5,7 +5,7 @@ services: build: context: . dockerfile: tools/deps/Dockerfile - platforms: + platform: - linux/amd64 - linux/arm64 image: metacall/core:deps @@ -14,7 +14,7 @@ services: build: context: . dockerfile: tools/dev/Dockerfile - platforms: + platform: - linux/amd64 - linux/arm64 image: metacall/core:dev @@ -23,7 +23,7 @@ services: build: context: . dockerfile: tools/runtime/Dockerfile - platforms: + platform: - linux/amd64 - linux/arm64 image: metacall/core:runtime @@ -32,7 +32,7 @@ services: build: context: . dockerfile: tools/cli/Dockerfile - platforms: + platform: - linux/amd64 - linux/arm64 image: metacall/core:cli From 3727ff7dc2ed375f1ec629a125e086863e06f411 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 16:36:51 +0530 Subject: [PATCH 58/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index 16f0d5b59..cbdfa4db0 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -1,4 +1,4 @@ -version: '3.9' +version: '2.4' services: deps: From f2f05888f972cee0d9a59ec994728fc2ea61855e Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 16:38:38 +0530 Subject: [PATCH 59/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index cbdfa4db0..8246c4cfa 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -5,7 +5,7 @@ services: build: context: . dockerfile: tools/deps/Dockerfile - platform: + platforms: - linux/amd64 - linux/arm64 image: metacall/core:deps @@ -14,7 +14,7 @@ services: build: context: . dockerfile: tools/dev/Dockerfile - platform: + platforms: - linux/amd64 - linux/arm64 image: metacall/core:dev @@ -23,7 +23,7 @@ services: build: context: . dockerfile: tools/runtime/Dockerfile - platform: + platforms: - linux/amd64 - linux/arm64 image: metacall/core:runtime @@ -32,7 +32,7 @@ services: build: context: . dockerfile: tools/cli/Dockerfile - platform: + platforms: - linux/amd64 - linux/arm64 image: metacall/core:cli From faeefa5fc4ed9b02862f1f62a2ee813ceec9cf7b Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 16:40:48 +0530 Subject: [PATCH 60/93] Update docker-compose.yml --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index d7383d654..492ec6579 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,7 +17,7 @@ # limitations under the License. # -version: "3.7" +version: "2.4" services: deps: From 75fa26aece797f82dbaab8be405016a6afec73d4 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 16:43:57 +0530 Subject: [PATCH 61/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 18a6574e1..94bf553fd 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -38,7 +38,7 @@ jobs: uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v2 - name: Login to DockerHub uses: docker/login-action@v2 From c47a255c87e4600be087b675204c2322c5e00fed Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 16:52:36 +0530 Subject: [PATCH 62/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index 8246c4cfa..cbdfa4db0 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -5,7 +5,7 @@ services: build: context: . dockerfile: tools/deps/Dockerfile - platforms: + platform: - linux/amd64 - linux/arm64 image: metacall/core:deps @@ -14,7 +14,7 @@ services: build: context: . dockerfile: tools/dev/Dockerfile - platforms: + platform: - linux/amd64 - linux/arm64 image: metacall/core:dev @@ -23,7 +23,7 @@ services: build: context: . dockerfile: tools/runtime/Dockerfile - platforms: + platform: - linux/amd64 - linux/arm64 image: metacall/core:runtime @@ -32,7 +32,7 @@ services: build: context: . dockerfile: tools/cli/Dockerfile - platforms: + platform: - linux/amd64 - linux/arm64 image: metacall/core:cli From 6b018aaf98c743b44e30e0434c76e2b022d859fc Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 17:00:55 +0530 Subject: [PATCH 63/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index cbdfa4db0..eb5ebb3e1 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -5,34 +5,26 @@ services: build: context: . dockerfile: tools/deps/Dockerfile - platform: - - linux/amd64 - - linux/arm64 + platform: linux/amd64 image: metacall/core:deps dev: build: context: . dockerfile: tools/dev/Dockerfile - platform: - - linux/amd64 - - linux/arm64 + platform: linux/amd64 image: metacall/core:dev runtime: build: context: . dockerfile: tools/runtime/Dockerfile - platform: - - linux/amd64 - - linux/arm64 + platform: linux/amd64 image: metacall/core:runtime cli: build: context: . dockerfile: tools/cli/Dockerfile - platform: - - linux/amd64 - - linux/arm64 + platform: linux/amd64 image: metacall/core:cli From db44db5f746c5b1b466fda74d582ca67f200fa96 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 17:19:40 +0530 Subject: [PATCH 64/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index eb5ebb3e1..f394583eb 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -2,29 +2,29 @@ version: '2.4' services: deps: + platform: linux/amd64 build: context: . dockerfile: tools/deps/Dockerfile - platform: linux/amd64 image: metacall/core:deps dev: + platform: linux/amd64 build: context: . dockerfile: tools/dev/Dockerfile - platform: linux/amd64 image: metacall/core:dev runtime: + platform: linux/amd64 build: context: . dockerfile: tools/runtime/Dockerfile - platform: linux/amd64 image: metacall/core:runtime cli: + platform: linux/amd64 build: context: . dockerfile: tools/cli/Dockerfile - platform: linux/amd64 image: metacall/core:cli From 02c9b9335c965a0b86ab6e98cc5bfdf655d4fd04 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 17:40:23 +0530 Subject: [PATCH 65/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 30 +++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 94bf553fd..07f05d193 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -40,11 +40,11 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + # - name: Login to DockerHub + # uses: docker/login-action@v2 + # with: + # username: ${{ secrets.DOCKER_HUB_USERNAME }} + # password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Docker meta id: meta @@ -63,7 +63,7 @@ jobs: - name: Build and Push Multi-Architecture Images run: | bash ./docker-compose.sh build-multiarch - docker pull ${{ env.IMAGE_NAME }}:latest + # docker pull ${{ env.IMAGE_NAME }}:latest - name: Export digest id: export_digest @@ -71,8 +71,8 @@ jobs: digest=$(docker inspect --format='{{index .RepoDigests 0}}' ${{ env.IMAGE_NAME }}:latest) echo "DIGEST=${digest#*:}" >> $GITHUB_ENV - - name: Logout from DockerHub - run: docker logout + # - name: Logout from DockerHub + # run: docker logout create-manifest: runs-on: ubuntu-latest @@ -84,11 +84,11 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + # - name: Login to DockerHub + # uses: docker/login-action@v2 + # with: + # username: ${{ secrets.DOCKER_HUB_USERNAME }} + # password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Create manifest list and push run: | @@ -99,5 +99,5 @@ jobs: - name: Inspect image run: docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest - - name: Logout from DockerHub - run: docker logout + # - name: Logout from DockerHub + # run: docker logout From 477dab0813ccc92efc1b80b4b0a544202180bb08 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 18:07:44 +0530 Subject: [PATCH 66/93] Update .env --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index 05231807a..eb6fc7859 100644 --- a/.env +++ b/.env @@ -23,4 +23,4 @@ COMPOSE_PROJECT_NAME='metacall' # Configure default variables METACALL_PATH=/usr/local/metacall METACALL_BUILD_TYPE=relwithdebinfo -METACALL_BASE_IMAGE=debian:trixie-slim # debian:bookworm-slim # ubuntu:jammy # ubuntu:mantic # alpine:3.17 +METACALL_BASE_IMAGE=debian:bookworm-slim # debian:bookworm-slim # ubuntu:jammy # ubuntu:mantic # alpine:3.17 From 88b872302088447d5923fca0ec703439ad6e8aac Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 18:15:56 +0530 Subject: [PATCH 67/93] Update CMakeLists.txt --- source/tests/CMakeLists.txt | 266 ------------------------------------ 1 file changed, 266 deletions(-) diff --git a/source/tests/CMakeLists.txt b/source/tests/CMakeLists.txt index 40c474cd1..8b1378917 100644 --- a/source/tests/CMakeLists.txt +++ b/source/tests/CMakeLists.txt @@ -1,267 +1 @@ -# -# Setup test environment -# -# Check if tests are enabled -if(NOT OPTION_BUILD_TESTS) - return() -endif() - -# DISABLE CMP0037: Target names should not be reserved and should match a validity pattern -if("${CMAKE_VERSION}" VERSION_LESS "3.11" AND POLICY CMP0037) - set_policy(CMP0037 OLD) -endif() - -set(GTEST_VERSION 1.11.0) - -find_package(GTest ${GTEST_VERSION}) - -if(NOT GTEST_FOUND) - include(InstallGTest) - - if(NOT GTEST_FOUND) - message(SEND_ERROR "GTest libraries not found") - return() - endif() - - set(GTEST_INSTALL TRUE) -endif() - -# Create interface library to link against Google Test -add_library(GTest INTERFACE) - -target_include_directories(GTest - SYSTEM INTERFACE - ${GTEST_INCLUDE_DIRS} -) - -target_link_libraries(GTest - INTERFACE - ${GTEST_LIBRARIES} -) - -if(GTEST_INSTALL) - add_dependencies(GTest google-test-depends) -endif() - -# Set memory check configuration -option(OPTION_TEST_MEMORYCHECK "Run tests with memory checker (valgrind)." OFF) - - -if(OPTION_TEST_MEMORYCHECK AND (OPTION_BUILD_ADDRESS_SANITIZER OR OPTION_BUILD_THREAD_SANITIZER OR OPTION_BUILD_MEMORY_SANITIZER)) - message(WARNING "OPTION_TEST_MEMORYCHECK and OPTION_BUILD_{ADDRESS,THREAD,MEMORY}_SANITIZER are not compatible, disabling memcheck tests.") -endif() - -if(OPTION_TEST_MEMORYCHECK AND NOT (OPTION_BUILD_ADDRESS_SANITIZER OR OPTION_BUILD_THREAD_SANITIZER OR OPTION_BUILD_MEMORY_SANITIZER)) - # set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --show-leak-kinds=all") - set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --leak-check=full") - set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --trace-children=yes") - set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --show-reachable=yes") - set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --track-origins=yes") - set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --num-callers=100") - set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --smc-check=all-non-file") # for JITs - set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/memcheck/valgrind-dl.supp") - set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/memcheck/valgrind-python.supp") - set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/memcheck/valgrind-node.supp") - set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/memcheck/valgrind-wasm.supp") - set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/memcheck/valgrind-wasm.supp") - - # TODO: Implement automatic detection for valgrind suppressions and create a proper test suite for the CI - # set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=/usr/lib/valgrind/python3.supp") - # set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=/usr/lib/valgrind/debian.supp") - - # TODO: Memory check does not work properly with CoreCLR - # - # Remove MEMCHECK_IGNORE label from the following tests: - # - cs-loader-test - # - metacall-test - # - metacall-distributable-test - # - metacall-inspect-test - # - metacall-integration-test - - include(ProcessorCount) - - ProcessorCount(N) - - add_custom_target(memcheck - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - COMMAND ${CMAKE_CTEST_COMMAND} - -j${N} - --label-exclude MEMCHECK_IGNORE - --force-new-ctest-process - --test-action memcheck - --timeout 7200 - COMMAND ${CMAKE_COMMAND} -E cat "${CMAKE_BINARY_DIR}/Testing/Temporary/MemoryChecker.*.log" - ) - - # This is needed in order to allow valgrind to properly track malloc in Python - set(TESTS_ENVIRONMENT_VARIABLES - ${TESTS_ENVIRONMENT_VARIABLES} - "PYTHONMALLOC=malloc" - ) -endif() - -# -# Tests -# - -include(CTest) - -add_subdirectory(preprocessor_test) -add_subdirectory(environment_test) -add_subdirectory(log_test) -add_subdirectory(log_custom_test) -add_subdirectory(adt_set_test) -add_subdirectory(adt_trie_test) -add_subdirectory(adt_vector_test) -add_subdirectory(adt_map_test) -add_subdirectory(reflect_value_cast_test) -add_subdirectory(reflect_function_test) -add_subdirectory(reflect_object_class_test) -add_subdirectory(reflect_scope_test) -add_subdirectory(reflect_metadata_test) -add_subdirectory(dynlink_test) -add_subdirectory(detour_test) -add_subdirectory(serial_test) -add_subdirectory(configuration_test) -add_subdirectory(rb_loader_parser_test) -add_subdirectory(portability_path_test) -add_subdirectory(metacall_logs_test) -add_subdirectory(metacall_load_memory_test) -add_subdirectory(metacall_load_memory_empty_test) -add_subdirectory(metacall_load_configuration_test) -add_subdirectory(metacall_load_configuration_fail_test) -add_subdirectory(metacall_load_configuration_relative_test) -add_subdirectory(metacall_load_configuration_python_node_test) -add_subdirectory(metacall_load_configuration_node_python_test) -add_subdirectory(metacall_duplicated_handle_test) -add_subdirectory(metacall_duplicated_symbols_test) -add_subdirectory(metacall_handle_export_test) -add_subdirectory(metacall_handle_get_test) -add_subdirectory(metacall_test) -add_subdirectory(metacall_node_test) -add_subdirectory(metacall_node_event_loop_test) -add_subdirectory(metacall_node_event_loop_signal_test) -#add_subdirectory(metacall_node_default_export_test) # TODO: This is a feature in order to export by default all functions if there is no module.exports (bootstrap.js) -add_subdirectory(metacall_node_call_test) -add_subdirectory(metacall_node_inline_test) -add_subdirectory(metacall_node_async_test) -add_subdirectory(metacall_node_async_multiple_test) -add_subdirectory(metacall_node_reentrant_test) -add_subdirectory(metacall_node_port_test) -add_subdirectory(metacall_node_port_await_test) -add_subdirectory(metacall_node_port_rs_test) -add_subdirectory(metacall_node_python_port_mock_test) -add_subdirectory(metacall_node_python_port_ruby_test) -add_subdirectory(metacall_node_python_ruby_test) -add_subdirectory(metacall_node_callback_test) -add_subdirectory(metacall_node_fail_test) -add_subdirectory(metacall_node_fail_env_var_test) -add_subdirectory(metacall_node_fail_load_leak_test) -add_subdirectory(metacall_node_typescript_test) -add_subdirectory(metacall_node_python_async_after_destroy_test) -add_subdirectory(metacall_node_python_await_test) -add_subdirectory(metacall_node_python_await_extended_test) -add_subdirectory(metacall_node_python_exception_test) -add_subdirectory(metacall_node_clear_mem_test) -add_subdirectory(metacall_node_async_resources_test) -add_subdirectory(metacall_node_await_chain_test) -add_subdirectory(metacall_node_exception_test) -add_subdirectory(metacall_node_python_deadlock_test) -# add_subdirectory(metacall_node_signal_handler_test) # Note: Not used anymore but leaving it here for reference to solve this: https://github.com/metacall/core/issues/121 -add_subdirectory(metacall_node_native_code_test) -add_subdirectory(metacall_node_extension_test) -add_subdirectory(metacall_node_multithread_deadlock_test) -add_subdirectory(metacall_distributable_test) -add_subdirectory(metacall_cast_test) -add_subdirectory(metacall_init_fini_test) -add_subdirectory(metacall_ducktype_test) -add_subdirectory(metacall_inspect_test) -add_subdirectory(metacall_integration_test) -add_subdirectory(metacall_depends_test) -add_subdirectory(metacall_configuration_exec_path_test) -add_subdirectory(metacall_configuration_default_test) -add_subdirectory(metacall_clear_test) -add_subdirectory(metacall_python_test) -add_subdirectory(metacall_python_object_class_test) -add_subdirectory(metacall_python_gc_test) -add_subdirectory(metacall_python_open_test) -add_subdirectory(metacall_python_dict_test) -add_subdirectory(metacall_python_model_test) -add_subdirectory(metacall_python_pointer_test) -add_subdirectory(metacall_python_reentrant_test) -add_subdirectory(metacall_python_varargs_test) -add_subdirectory(metacall_python_loader_port_test) -add_subdirectory(metacall_python_port_test) -add_subdirectory(metacall_python_port_https_test) -add_subdirectory(metacall_python_port_callback_test) -add_subdirectory(metacall_python_port_import_test) -add_subdirectory(metacall_python_callback_test) -add_subdirectory(metacall_python_fail_test) -add_subdirectory(metacall_python_relative_path_test) -add_subdirectory(metacall_python_without_functions_test) -add_subdirectory(metacall_python_builtins_test) -add_subdirectory(metacall_python_async_test) -# TODO: add_subdirectory(metacall_python_await_test) # TODO: Implement metacall_await in Python Port -add_subdirectory(metacall_python_exception_test) -# TODO: add_subdirectory(metacall_python_node_await_test) # TODO: Implement metacall_await in Python Port -add_subdirectory(metacall_python_without_env_vars_test) -add_subdirectory(metacall_map_test) -add_subdirectory(metacall_map_await_test) -add_subdirectory(metacall_initialize_test) -add_subdirectory(metacall_initialize_ex_test) -add_subdirectory(metacall_reinitialize_test) -add_subdirectory(metacall_initialize_destroy_multiple_test) -add_subdirectory(metacall_initialize_destroy_multiple_node_test) -add_subdirectory(metacall_reload_functions_test) -add_subdirectory(metacall_invalid_loader_test) -add_subdirectory(metacall_fork_test) -add_subdirectory(metacall_return_monad_test) -add_subdirectory(metacall_callback_complex_test) -add_subdirectory(metacall_ruby_fail_test) -add_subdirectory(metacall_ruby_fail_empty_test) -add_subdirectory(metacall_ruby_object_class_test) -add_subdirectory(metacall_ruby_parser_integration_test) -# add_subdirectory(metacall_ruby_rails_integration_test) # TODO -add_subdirectory(metacall_function_test) -add_subdirectory(metacall_cobol_test) -add_subdirectory(metacall_file_test) -add_subdirectory(metacall_file_fail_test) -add_subdirectory(metacall_file_glob_test) -add_subdirectory(metacall_typescript_test) -add_subdirectory(metacall_typescript_node_test) -add_subdirectory(metacall_typescript_call_map_test) -add_subdirectory(metacall_typescript_tsx_test) -add_subdirectory(metacall_typescript_tsx_loop_fail_test) -add_subdirectory(metacall_typescript_require_test) -add_subdirectory(metacall_typescript_jsx_default_test) -add_subdirectory(metacall_lua_test) -add_subdirectory(metacall_rpc_test) -#add_subdirectory(metacall_csharp_function_test) # TODO: C# 9.0 seems not to work so top level expressions do not work -add_subdirectory(metacall_csharp_static_class_test) -add_subdirectory(metacall_llvm_test) -add_subdirectory(metacall_ruby_test) -add_subdirectory(metacall_cs_test) -add_subdirectory(metacall_julia_test) -add_subdirectory(metacall_java_test) -add_subdirectory(metacall_wasm_test) -add_subdirectory(metacall_wasm_python_port_test) -add_subdirectory(metacall_rust_test) -add_subdirectory(metacall_rust_load_from_mem_test) -add_subdirectory(metacall_rust_load_from_package_test) -add_subdirectory(metacall_rust_load_from_package_dep_test) -add_subdirectory(metacall_rust_load_from_package_class_test) -add_subdirectory(metacall_rust_class_test) -add_subdirectory(metacall_c_test) -#add_subdirectory(metacall_c_lib_test) # TODO: TCC cannot list the symbols from the external libraries, neither static or shared -add_subdirectory(metacall_version_test) -add_subdirectory(metacall_dynlink_path_test) -add_subdirectory(metacall_library_path_without_env_vars_test) -add_subdirectory(metacall_ext_test) -add_subdirectory(metacall_plugin_extension_test) -add_subdirectory(metacall_plugin_extension_local_test) -add_subdirectory(metacall_plugin_extension_destroy_order_test) -add_subdirectory(metacall_cli_core_plugin_test) -add_subdirectory(metacall_cli_core_plugin_await_test) -add_subdirectory(metacall_backtrace_plugin_test) -add_subdirectory(metacall_sandbox_plugin_test) From b88c6b30b9247218ea6d9e2c36a92afee9ea4ef0 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 19:45:07 +0530 Subject: [PATCH 68/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 07f05d193..114d9afbd 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -14,7 +14,7 @@ concurrency: cancel-in-progress: true env: - IMAGE_NAME: index.docker.io/metacall/core + IMAGE_NAME: metacall/core jobs: build: From f57d685390827192f40587289cd8809c3f8a6233 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 19:48:53 +0530 Subject: [PATCH 69/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 114d9afbd..07f05d193 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -14,7 +14,7 @@ concurrency: cancel-in-progress: true env: - IMAGE_NAME: metacall/core + IMAGE_NAME: index.docker.io/metacall/core jobs: build: From 52e15d409bec22b873ba0e0e29c9e43e134db8c4 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 19:49:20 +0530 Subject: [PATCH 70/93] Update docker-compose.sh --- docker-compose.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker-compose.sh b/docker-compose.sh index 52ef42bbf..a03fb31c9 100755 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -98,8 +98,6 @@ sub_build_multiarch() { ln -sf tools/cli/.dockerignore .dockerignore $DOCKER_COMPOSE -f docker-compose.yml -f docker-compose-multiarch.yml build --force-rm cli - # Optionally, remove the builder instance after use - docker buildx rm mybuilder } # Build MetaCall Docker Compose without cache (link manually dockerignore files) From 9210967edb16b5780f73119922d0f63461c55bc5 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 19:50:23 +0530 Subject: [PATCH 71/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 07f05d193..1b854c990 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -63,7 +63,7 @@ jobs: - name: Build and Push Multi-Architecture Images run: | bash ./docker-compose.sh build-multiarch - # docker pull ${{ env.IMAGE_NAME }}:latest + docker pull ${{ env.IMAGE_NAME }}:latest - name: Export digest id: export_digest From 30ef084d82db2bf54ac52877baf39afe702503f4 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 20:05:50 +0530 Subject: [PATCH 72/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 1b854c990..2c8e76ebf 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -14,7 +14,7 @@ concurrency: cancel-in-progress: true env: - IMAGE_NAME: index.docker.io/metacall/core + IMAGE_NAME: metacall/core jobs: build: From d0778fbdab817238c1e0314cbe08ef1c9b28afef Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 21:22:33 +0530 Subject: [PATCH 73/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 33 +++++++++++------------ 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 2c8e76ebf..49e5f1127 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -5,7 +5,6 @@ on: push: branches: - master - - multiPlatform-Feature tags: - 'v*.*' @@ -14,8 +13,8 @@ concurrency: cancel-in-progress: true env: - IMAGE_NAME: metacall/core - + IMAGE_NAME: index.docker.io/metacall/core + jobs: build: runs-on: ubuntu-latest @@ -40,11 +39,11 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - # - name: Login to DockerHub - # uses: docker/login-action@v2 - # with: - # username: ${{ secrets.DOCKER_HUB_USERNAME }} - # password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Docker meta id: meta @@ -71,8 +70,8 @@ jobs: digest=$(docker inspect --format='{{index .RepoDigests 0}}' ${{ env.IMAGE_NAME }}:latest) echo "DIGEST=${digest#*:}" >> $GITHUB_ENV - # - name: Logout from DockerHub - # run: docker logout + - name: Logout from DockerHub + run: docker logout create-manifest: runs-on: ubuntu-latest @@ -84,11 +83,11 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - # - name: Login to DockerHub - # uses: docker/login-action@v2 - # with: - # username: ${{ secrets.DOCKER_HUB_USERNAME }} - # password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Create manifest list and push run: | @@ -99,5 +98,5 @@ jobs: - name: Inspect image run: docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest - # - name: Logout from DockerHub - # run: docker logout + - name: Logout from DockerHub + run: docker logout From 44fb159a0db435b623343c21b88243a84b97f1f3 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Tue, 23 Jul 2024 21:23:18 +0530 Subject: [PATCH 74/93] Update CMakeLists.txt --- source/tests/CMakeLists.txt | 266 ++++++++++++++++++++++++++++++++++++ 1 file changed, 266 insertions(+) diff --git a/source/tests/CMakeLists.txt b/source/tests/CMakeLists.txt index 8b1378917..40c474cd1 100644 --- a/source/tests/CMakeLists.txt +++ b/source/tests/CMakeLists.txt @@ -1 +1,267 @@ +# +# Setup test environment +# +# Check if tests are enabled +if(NOT OPTION_BUILD_TESTS) + return() +endif() + +# DISABLE CMP0037: Target names should not be reserved and should match a validity pattern +if("${CMAKE_VERSION}" VERSION_LESS "3.11" AND POLICY CMP0037) + set_policy(CMP0037 OLD) +endif() + +set(GTEST_VERSION 1.11.0) + +find_package(GTest ${GTEST_VERSION}) + +if(NOT GTEST_FOUND) + include(InstallGTest) + + if(NOT GTEST_FOUND) + message(SEND_ERROR "GTest libraries not found") + return() + endif() + + set(GTEST_INSTALL TRUE) +endif() + +# Create interface library to link against Google Test +add_library(GTest INTERFACE) + +target_include_directories(GTest + SYSTEM INTERFACE + ${GTEST_INCLUDE_DIRS} +) + +target_link_libraries(GTest + INTERFACE + ${GTEST_LIBRARIES} +) + +if(GTEST_INSTALL) + add_dependencies(GTest google-test-depends) +endif() + +# Set memory check configuration +option(OPTION_TEST_MEMORYCHECK "Run tests with memory checker (valgrind)." OFF) + + +if(OPTION_TEST_MEMORYCHECK AND (OPTION_BUILD_ADDRESS_SANITIZER OR OPTION_BUILD_THREAD_SANITIZER OR OPTION_BUILD_MEMORY_SANITIZER)) + message(WARNING "OPTION_TEST_MEMORYCHECK and OPTION_BUILD_{ADDRESS,THREAD,MEMORY}_SANITIZER are not compatible, disabling memcheck tests.") +endif() + +if(OPTION_TEST_MEMORYCHECK AND NOT (OPTION_BUILD_ADDRESS_SANITIZER OR OPTION_BUILD_THREAD_SANITIZER OR OPTION_BUILD_MEMORY_SANITIZER)) + # set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --show-leak-kinds=all") + set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --leak-check=full") + set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --trace-children=yes") + set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --show-reachable=yes") + set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --track-origins=yes") + set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --num-callers=100") + set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --smc-check=all-non-file") # for JITs + set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/memcheck/valgrind-dl.supp") + set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/memcheck/valgrind-python.supp") + set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/memcheck/valgrind-node.supp") + set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/memcheck/valgrind-wasm.supp") + set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/memcheck/valgrind-wasm.supp") + + # TODO: Implement automatic detection for valgrind suppressions and create a proper test suite for the CI + # set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=/usr/lib/valgrind/python3.supp") + # set(MEMORYCHECK_COMMAND_OPTIONS "${MEMORYCHECK_COMMAND_OPTIONS} --suppressions=/usr/lib/valgrind/debian.supp") + + # TODO: Memory check does not work properly with CoreCLR + # + # Remove MEMCHECK_IGNORE label from the following tests: + # - cs-loader-test + # - metacall-test + # - metacall-distributable-test + # - metacall-inspect-test + # - metacall-integration-test + + include(ProcessorCount) + + ProcessorCount(N) + + add_custom_target(memcheck + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + COMMAND ${CMAKE_CTEST_COMMAND} + -j${N} + --label-exclude MEMCHECK_IGNORE + --force-new-ctest-process + --test-action memcheck + --timeout 7200 + COMMAND ${CMAKE_COMMAND} -E cat "${CMAKE_BINARY_DIR}/Testing/Temporary/MemoryChecker.*.log" + ) + + # This is needed in order to allow valgrind to properly track malloc in Python + set(TESTS_ENVIRONMENT_VARIABLES + ${TESTS_ENVIRONMENT_VARIABLES} + "PYTHONMALLOC=malloc" + ) +endif() + +# +# Tests +# + +include(CTest) + +add_subdirectory(preprocessor_test) +add_subdirectory(environment_test) +add_subdirectory(log_test) +add_subdirectory(log_custom_test) +add_subdirectory(adt_set_test) +add_subdirectory(adt_trie_test) +add_subdirectory(adt_vector_test) +add_subdirectory(adt_map_test) +add_subdirectory(reflect_value_cast_test) +add_subdirectory(reflect_function_test) +add_subdirectory(reflect_object_class_test) +add_subdirectory(reflect_scope_test) +add_subdirectory(reflect_metadata_test) +add_subdirectory(dynlink_test) +add_subdirectory(detour_test) +add_subdirectory(serial_test) +add_subdirectory(configuration_test) +add_subdirectory(rb_loader_parser_test) +add_subdirectory(portability_path_test) +add_subdirectory(metacall_logs_test) +add_subdirectory(metacall_load_memory_test) +add_subdirectory(metacall_load_memory_empty_test) +add_subdirectory(metacall_load_configuration_test) +add_subdirectory(metacall_load_configuration_fail_test) +add_subdirectory(metacall_load_configuration_relative_test) +add_subdirectory(metacall_load_configuration_python_node_test) +add_subdirectory(metacall_load_configuration_node_python_test) +add_subdirectory(metacall_duplicated_handle_test) +add_subdirectory(metacall_duplicated_symbols_test) +add_subdirectory(metacall_handle_export_test) +add_subdirectory(metacall_handle_get_test) +add_subdirectory(metacall_test) +add_subdirectory(metacall_node_test) +add_subdirectory(metacall_node_event_loop_test) +add_subdirectory(metacall_node_event_loop_signal_test) +#add_subdirectory(metacall_node_default_export_test) # TODO: This is a feature in order to export by default all functions if there is no module.exports (bootstrap.js) +add_subdirectory(metacall_node_call_test) +add_subdirectory(metacall_node_inline_test) +add_subdirectory(metacall_node_async_test) +add_subdirectory(metacall_node_async_multiple_test) +add_subdirectory(metacall_node_reentrant_test) +add_subdirectory(metacall_node_port_test) +add_subdirectory(metacall_node_port_await_test) +add_subdirectory(metacall_node_port_rs_test) +add_subdirectory(metacall_node_python_port_mock_test) +add_subdirectory(metacall_node_python_port_ruby_test) +add_subdirectory(metacall_node_python_ruby_test) +add_subdirectory(metacall_node_callback_test) +add_subdirectory(metacall_node_fail_test) +add_subdirectory(metacall_node_fail_env_var_test) +add_subdirectory(metacall_node_fail_load_leak_test) +add_subdirectory(metacall_node_typescript_test) +add_subdirectory(metacall_node_python_async_after_destroy_test) +add_subdirectory(metacall_node_python_await_test) +add_subdirectory(metacall_node_python_await_extended_test) +add_subdirectory(metacall_node_python_exception_test) +add_subdirectory(metacall_node_clear_mem_test) +add_subdirectory(metacall_node_async_resources_test) +add_subdirectory(metacall_node_await_chain_test) +add_subdirectory(metacall_node_exception_test) +add_subdirectory(metacall_node_python_deadlock_test) +# add_subdirectory(metacall_node_signal_handler_test) # Note: Not used anymore but leaving it here for reference to solve this: https://github.com/metacall/core/issues/121 +add_subdirectory(metacall_node_native_code_test) +add_subdirectory(metacall_node_extension_test) +add_subdirectory(metacall_node_multithread_deadlock_test) +add_subdirectory(metacall_distributable_test) +add_subdirectory(metacall_cast_test) +add_subdirectory(metacall_init_fini_test) +add_subdirectory(metacall_ducktype_test) +add_subdirectory(metacall_inspect_test) +add_subdirectory(metacall_integration_test) +add_subdirectory(metacall_depends_test) +add_subdirectory(metacall_configuration_exec_path_test) +add_subdirectory(metacall_configuration_default_test) +add_subdirectory(metacall_clear_test) +add_subdirectory(metacall_python_test) +add_subdirectory(metacall_python_object_class_test) +add_subdirectory(metacall_python_gc_test) +add_subdirectory(metacall_python_open_test) +add_subdirectory(metacall_python_dict_test) +add_subdirectory(metacall_python_model_test) +add_subdirectory(metacall_python_pointer_test) +add_subdirectory(metacall_python_reentrant_test) +add_subdirectory(metacall_python_varargs_test) +add_subdirectory(metacall_python_loader_port_test) +add_subdirectory(metacall_python_port_test) +add_subdirectory(metacall_python_port_https_test) +add_subdirectory(metacall_python_port_callback_test) +add_subdirectory(metacall_python_port_import_test) +add_subdirectory(metacall_python_callback_test) +add_subdirectory(metacall_python_fail_test) +add_subdirectory(metacall_python_relative_path_test) +add_subdirectory(metacall_python_without_functions_test) +add_subdirectory(metacall_python_builtins_test) +add_subdirectory(metacall_python_async_test) +# TODO: add_subdirectory(metacall_python_await_test) # TODO: Implement metacall_await in Python Port +add_subdirectory(metacall_python_exception_test) +# TODO: add_subdirectory(metacall_python_node_await_test) # TODO: Implement metacall_await in Python Port +add_subdirectory(metacall_python_without_env_vars_test) +add_subdirectory(metacall_map_test) +add_subdirectory(metacall_map_await_test) +add_subdirectory(metacall_initialize_test) +add_subdirectory(metacall_initialize_ex_test) +add_subdirectory(metacall_reinitialize_test) +add_subdirectory(metacall_initialize_destroy_multiple_test) +add_subdirectory(metacall_initialize_destroy_multiple_node_test) +add_subdirectory(metacall_reload_functions_test) +add_subdirectory(metacall_invalid_loader_test) +add_subdirectory(metacall_fork_test) +add_subdirectory(metacall_return_monad_test) +add_subdirectory(metacall_callback_complex_test) +add_subdirectory(metacall_ruby_fail_test) +add_subdirectory(metacall_ruby_fail_empty_test) +add_subdirectory(metacall_ruby_object_class_test) +add_subdirectory(metacall_ruby_parser_integration_test) +# add_subdirectory(metacall_ruby_rails_integration_test) # TODO +add_subdirectory(metacall_function_test) +add_subdirectory(metacall_cobol_test) +add_subdirectory(metacall_file_test) +add_subdirectory(metacall_file_fail_test) +add_subdirectory(metacall_file_glob_test) +add_subdirectory(metacall_typescript_test) +add_subdirectory(metacall_typescript_node_test) +add_subdirectory(metacall_typescript_call_map_test) +add_subdirectory(metacall_typescript_tsx_test) +add_subdirectory(metacall_typescript_tsx_loop_fail_test) +add_subdirectory(metacall_typescript_require_test) +add_subdirectory(metacall_typescript_jsx_default_test) +add_subdirectory(metacall_lua_test) +add_subdirectory(metacall_rpc_test) +#add_subdirectory(metacall_csharp_function_test) # TODO: C# 9.0 seems not to work so top level expressions do not work +add_subdirectory(metacall_csharp_static_class_test) +add_subdirectory(metacall_llvm_test) +add_subdirectory(metacall_ruby_test) +add_subdirectory(metacall_cs_test) +add_subdirectory(metacall_julia_test) +add_subdirectory(metacall_java_test) +add_subdirectory(metacall_wasm_test) +add_subdirectory(metacall_wasm_python_port_test) +add_subdirectory(metacall_rust_test) +add_subdirectory(metacall_rust_load_from_mem_test) +add_subdirectory(metacall_rust_load_from_package_test) +add_subdirectory(metacall_rust_load_from_package_dep_test) +add_subdirectory(metacall_rust_load_from_package_class_test) +add_subdirectory(metacall_rust_class_test) +add_subdirectory(metacall_c_test) +#add_subdirectory(metacall_c_lib_test) # TODO: TCC cannot list the symbols from the external libraries, neither static or shared +add_subdirectory(metacall_version_test) +add_subdirectory(metacall_dynlink_path_test) +add_subdirectory(metacall_library_path_without_env_vars_test) +add_subdirectory(metacall_ext_test) +add_subdirectory(metacall_plugin_extension_test) +add_subdirectory(metacall_plugin_extension_local_test) +add_subdirectory(metacall_plugin_extension_destroy_order_test) +add_subdirectory(metacall_cli_core_plugin_test) +add_subdirectory(metacall_cli_core_plugin_await_test) +add_subdirectory(metacall_backtrace_plugin_test) +add_subdirectory(metacall_sandbox_plugin_test) From 28d8e9d94e516b1361de3f9c4543e05262879ab8 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 29 Jul 2024 13:47:49 +0530 Subject: [PATCH 75/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 49e5f1127..e6262a1f3 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -91,7 +91,9 @@ jobs: - name: Create manifest list and push run: | - docker buildx imagetools create --tag ${{ env.IMAGE_NAME }}:latest \ + run: | + docker buildx imagetools create \ + --tag ${{ env.IMAGE_NAME }}:latest \ --tag ${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} \ ${{ env.IMAGE_NAME }}@sha256:${{ env.DIGEST }} From 8af4f672b7a0a63f2cb0b19763bed872ceb7fba2 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Mon, 29 Jul 2024 13:49:36 +0530 Subject: [PATCH 76/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index e6262a1f3..49e5f1127 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -91,9 +91,7 @@ jobs: - name: Create manifest list and push run: | - run: | - docker buildx imagetools create \ - --tag ${{ env.IMAGE_NAME }}:latest \ + docker buildx imagetools create --tag ${{ env.IMAGE_NAME }}:latest \ --tag ${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} \ ${{ env.IMAGE_NAME }}@sha256:${{ env.DIGEST }} From c9e79f79fed7076f093459f5124afd9e3df1d641 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 11:03:51 +0530 Subject: [PATCH 77/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 42 ++++++++++++++--------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 49e5f1127..a94fb4028 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -14,7 +14,7 @@ concurrency: env: IMAGE_NAME: index.docker.io/metacall/core - + jobs: build: runs-on: ubuntu-latest @@ -38,6 +38,13 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 + with: + install: true + + - name: Create Docker Buildx builder + run: | + docker buildx create --use --name mybuilder + docker buildx inspect --bootstrap - name: Login to DockerHub uses: docker/login-action@v2 @@ -51,23 +58,20 @@ jobs: with: images: ${{ env.IMAGE_NAME }} - - name: Prepare - run: | - platform=${{ matrix.platform }} - echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV + - name: Set platform environment variable + run: echo "PLATFORM_PAIR=${{ matrix.platform//\//- }}" >> $GITHUB_ENV - - name: Pull MetaCall Docker Images - run: bash ./docker-compose.sh pull - - name: Build and Push Multi-Architecture Images run: | - bash ./docker-compose.sh build-multiarch - docker pull ${{ env.IMAGE_NAME }}:latest - + echo "Building and pushing for platform: ${{ matrix.platform }}" + docker buildx build --builder mybuilder --platform ${{ matrix.platform }} \ + -t ${{ env.IMAGE_NAME }}:${{ env.PLATFORM_PAIR }} \ + --push . + - name: Export digest id: export_digest run: | - digest=$(docker inspect --format='{{index .RepoDigests 0}}' ${{ env.IMAGE_NAME }}:latest) + digest=$(docker inspect --format='{{index .RepoDigests 0}}' ${{ env.IMAGE_NAME }}:${{ env.PLATFORM_PAIR }}) echo "DIGEST=${digest#*:}" >> $GITHUB_ENV - name: Logout from DockerHub @@ -81,18 +85,24 @@ jobs: uses: actions/checkout@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v2 + with: + install: true - name: Login to DockerHub uses: docker/login-action@v2 with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + + - name: Create Docker Buildx builder + run: | + docker buildx create --use --name mybuilder + docker buildx inspect --bootstrap - name: Create manifest list and push run: | docker buildx imagetools create --tag ${{ env.IMAGE_NAME }}:latest \ - --tag ${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} \ ${{ env.IMAGE_NAME }}@sha256:${{ env.DIGEST }} - name: Inspect image From ebf80cdc8db2f055a6a612be866ca1d010a798a0 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 11:06:25 +0530 Subject: [PATCH 78/93] Update multiarch-dockerhub.yml From 8139fe37f37d7366f9b1370898943db6c938c246 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 11:16:21 +0530 Subject: [PATCH 79/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 42 +++++++++-------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index a94fb4028..49e5f1127 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -14,7 +14,7 @@ concurrency: env: IMAGE_NAME: index.docker.io/metacall/core - + jobs: build: runs-on: ubuntu-latest @@ -38,13 +38,6 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - with: - install: true - - - name: Create Docker Buildx builder - run: | - docker buildx create --use --name mybuilder - docker buildx inspect --bootstrap - name: Login to DockerHub uses: docker/login-action@v2 @@ -58,20 +51,23 @@ jobs: with: images: ${{ env.IMAGE_NAME }} - - name: Set platform environment variable - run: echo "PLATFORM_PAIR=${{ matrix.platform//\//- }}" >> $GITHUB_ENV + - name: Prepare + run: | + platform=${{ matrix.platform }} + echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV + - name: Pull MetaCall Docker Images + run: bash ./docker-compose.sh pull + - name: Build and Push Multi-Architecture Images run: | - echo "Building and pushing for platform: ${{ matrix.platform }}" - docker buildx build --builder mybuilder --platform ${{ matrix.platform }} \ - -t ${{ env.IMAGE_NAME }}:${{ env.PLATFORM_PAIR }} \ - --push . - + bash ./docker-compose.sh build-multiarch + docker pull ${{ env.IMAGE_NAME }}:latest + - name: Export digest id: export_digest run: | - digest=$(docker inspect --format='{{index .RepoDigests 0}}' ${{ env.IMAGE_NAME }}:${{ env.PLATFORM_PAIR }}) + digest=$(docker inspect --format='{{index .RepoDigests 0}}' ${{ env.IMAGE_NAME }}:latest) echo "DIGEST=${digest#*:}" >> $GITHUB_ENV - name: Logout from DockerHub @@ -85,24 +81,18 @@ jobs: uses: actions/checkout@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - with: - install: true + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub uses: docker/login-action@v2 with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - - name: Create Docker Buildx builder - run: | - docker buildx create --use --name mybuilder - docker buildx inspect --bootstrap + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Create manifest list and push run: | docker buildx imagetools create --tag ${{ env.IMAGE_NAME }}:latest \ + --tag ${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} \ ${{ env.IMAGE_NAME }}@sha256:${{ env.DIGEST }} - name: Inspect image From 3f872221339b47c723da38b07b61d9a2e10cdb2c Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 11:19:38 +0530 Subject: [PATCH 80/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index f394583eb..b31a842d5 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -2,28 +2,44 @@ version: '2.4' services: deps: - platform: linux/amd64 + platform: + - linux/amd64 + - linux/arm/v6 + - linux/arm/v7 + - linux/arm64 build: context: . dockerfile: tools/deps/Dockerfile image: metacall/core:deps dev: - platform: linux/amd64 + platform: + - linux/amd64 + - linux/arm/v6 + - linux/arm/v7 + - linux/arm64 build: context: . dockerfile: tools/dev/Dockerfile image: metacall/core:dev runtime: - platform: linux/amd64 + platform: + - linux/amd64 + - linux/arm/v6 + - linux/arm/v7 + - linux/arm64 build: context: . dockerfile: tools/runtime/Dockerfile image: metacall/core:runtime cli: - platform: linux/amd64 + platform: + - linux/amd64 + - linux/arm/v6 + - linux/arm/v7 + - linux/arm64 build: context: . dockerfile: tools/cli/Dockerfile From b6ff13c5bebd4c7c44751ff380fa7b6a711ec62a Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 11:23:23 +0530 Subject: [PATCH 81/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 49e5f1127..f352a6c42 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -52,18 +52,14 @@ jobs: images: ${{ env.IMAGE_NAME }} - name: Prepare - run: | - platform=${{ matrix.platform }} - echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV + run: echo "PLATFORM_PAIR=${{ matrix.platform//\//- }}" >> $GITHUB_ENV - name: Pull MetaCall Docker Images run: bash ./docker-compose.sh pull - name: Build and Push Multi-Architecture Images - run: | - bash ./docker-compose.sh build-multiarch - docker pull ${{ env.IMAGE_NAME }}:latest - + run: bash ./docker-compose.sh build-multiarch + - name: Export digest id: export_digest run: | From 913402c3024ee9b7a70c47f4229198bf4169b574 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 11:25:38 +0530 Subject: [PATCH 82/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index f352a6c42..49e5f1127 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -52,14 +52,18 @@ jobs: images: ${{ env.IMAGE_NAME }} - name: Prepare - run: echo "PLATFORM_PAIR=${{ matrix.platform//\//- }}" >> $GITHUB_ENV + run: | + platform=${{ matrix.platform }} + echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV - name: Pull MetaCall Docker Images run: bash ./docker-compose.sh pull - name: Build and Push Multi-Architecture Images - run: bash ./docker-compose.sh build-multiarch - + run: | + bash ./docker-compose.sh build-multiarch + docker pull ${{ env.IMAGE_NAME }}:latest + - name: Export digest id: export_digest run: | From 4b5f588bdca4ea94c9990187cae58593a0a5782e Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 11:33:18 +0530 Subject: [PATCH 83/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 49e5f1127..c792f633f 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -1,7 +1,7 @@ name: Build and Push Docker Image on: - workflow_dispatch: + workflow_dispatch: # Allows manual triggering of the workflow push: branches: - master @@ -9,7 +9,7 @@ on: - 'v*.*' concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: @@ -53,8 +53,7 @@ jobs: - name: Prepare run: | - platform=${{ matrix.platform }} - echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV + echo "PLATFORM_PAIR=${{ matrix.platform //\//- }}" >> $GITHUB_ENV - name: Pull MetaCall Docker Images run: bash ./docker-compose.sh pull @@ -62,8 +61,9 @@ jobs: - name: Build and Push Multi-Architecture Images run: | bash ./docker-compose.sh build-multiarch - docker pull ${{ env.IMAGE_NAME }}:latest - + # Pull the latest image to ensure it is updated + docker pull ${{ env.IMAGE_NAME }}:latest + - name: Export digest id: export_digest run: | @@ -86,8 +86,8 @@ jobs: - name: Login to DockerHub uses: docker/login-action@v2 with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Create manifest list and push run: | From 93c8e88649d2f2fc700d64cd5d2461502e23beee Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 12:46:14 +0530 Subject: [PATCH 84/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index b31a842d5..3f609c305 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -3,10 +3,7 @@ version: '2.4' services: deps: platform: - - linux/amd64 - - linux/arm/v6 - - linux/arm/v7 - - linux/arm64 + - ${METACALL_PLATFORM} build: context: . dockerfile: tools/deps/Dockerfile @@ -14,10 +11,7 @@ services: dev: platform: - - linux/amd64 - - linux/arm/v6 - - linux/arm/v7 - - linux/arm64 + - ${METACALL_PLATFORM} build: context: . dockerfile: tools/dev/Dockerfile @@ -25,10 +19,7 @@ services: runtime: platform: - - linux/amd64 - - linux/arm/v6 - - linux/arm/v7 - - linux/arm64 + - ${METACALL_PLATFORM} build: context: . dockerfile: tools/runtime/Dockerfile @@ -36,10 +27,7 @@ services: cli: platform: - - linux/amd64 - - linux/arm/v6 - - linux/arm/v7 - - linux/arm64 + - ${METACALL_PLATFORM} build: context: . dockerfile: tools/cli/Dockerfile From 47d9ac8e43ba35e523b0d718e102ba5882dfc96e Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 13:00:44 +0530 Subject: [PATCH 85/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index c792f633f..06f3ec23a 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -53,16 +53,11 @@ jobs: - name: Prepare run: | - echo "PLATFORM_PAIR=${{ matrix.platform //\//- }}" >> $GITHUB_ENV - - - name: Pull MetaCall Docker Images - run: bash ./docker-compose.sh pull - + echo "METACALL_PLATFORM=${{ matrix.platform //\//- }}" >> $GITHUB_ENV + - name: Build and Push Multi-Architecture Images run: | bash ./docker-compose.sh build-multiarch - # Pull the latest image to ensure it is updated - docker pull ${{ env.IMAGE_NAME }}:latest - name: Export digest id: export_digest From 423141042effcef4fb682a0619d49b1092c38eda Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 13:01:09 +0530 Subject: [PATCH 86/93] Update docker-compose-multiarch.yml --- docker-compose-multiarch.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-multiarch.yml b/docker-compose-multiarch.yml index 3f609c305..f4b92968c 100644 --- a/docker-compose-multiarch.yml +++ b/docker-compose-multiarch.yml @@ -1,4 +1,4 @@ -version: '2.4' +version: "3.7" services: deps: From 05cea794d2ccd2aab9960e2462b99773cd1e32df Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 13:01:27 +0530 Subject: [PATCH 87/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 06f3ec23a..6d179adaa 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -1,7 +1,7 @@ name: Build and Push Docker Image on: - workflow_dispatch: # Allows manual triggering of the workflow + workflow_dispatch: push: branches: - master From f6bb736c8af7ac0b781963a851e1d42579c69f10 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 13:05:05 +0530 Subject: [PATCH 88/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 41 +++++++++++------------ 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 6d179adaa..a4e03dbaa 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -68,27 +68,26 @@ jobs: - name: Logout from DockerHub run: docker logout - create-manifest: - runs-on: ubuntu-latest - needs: build - steps: - - name: Checkout the code - uses: actions/checkout@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - - name: Create manifest list and push - run: | - docker buildx imagetools create --tag ${{ env.IMAGE_NAME }}:latest \ - --tag ${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} \ - ${{ env.IMAGE_NAME }}@sha256:${{ env.DIGEST }} + # create-manifest: + # needs: build + # steps: + # - name: Checkout the code + # uses: actions/checkout@v3 + + # - name: Set up Docker Buildx + # uses: docker/setup-buildx-action@v3 + + # - name: Login to DockerHub + # uses: docker/login-action@v2 + # with: + # username: ${{ secrets.DOCKER_HUB_USERNAME }} + # password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + + # - name: Create manifest list and push + # run: | + # docker buildx imagetools create --tag ${{ env.IMAGE_NAME }}:latest \ + # --tag ${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} \ + # ${{ env.IMAGE_NAME }}@sha256:${{ env.DIGEST }} - name: Inspect image run: docker buildx imagetools inspect ${{ env.IMAGE_NAME }}:latest From 80c226d427f0cfa520b125dc3ff022c91f96d730 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 13:11:08 +0530 Subject: [PATCH 89/93] Update .env --- .env | 1 + 1 file changed, 1 insertion(+) diff --git a/.env b/.env index eb6fc7859..a175783fd 100644 --- a/.env +++ b/.env @@ -23,4 +23,5 @@ COMPOSE_PROJECT_NAME='metacall' # Configure default variables METACALL_PATH=/usr/local/metacall METACALL_BUILD_TYPE=relwithdebinfo +METACALL_PLATFORM=linux/amd64 METACALL_BASE_IMAGE=debian:bookworm-slim # debian:bookworm-slim # ubuntu:jammy # ubuntu:mantic # alpine:3.17 From c5f53848ffabe5122a7c5bdf8e2f85c4d33fc070 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 13:21:15 +0530 Subject: [PATCH 90/93] Update .env --- .env | 1 - 1 file changed, 1 deletion(-) diff --git a/.env b/.env index a175783fd..eb6fc7859 100644 --- a/.env +++ b/.env @@ -23,5 +23,4 @@ COMPOSE_PROJECT_NAME='metacall' # Configure default variables METACALL_PATH=/usr/local/metacall METACALL_BUILD_TYPE=relwithdebinfo -METACALL_PLATFORM=linux/amd64 METACALL_BASE_IMAGE=debian:bookworm-slim # debian:bookworm-slim # ubuntu:jammy # ubuntu:mantic # alpine:3.17 From 3c23bb3aed1793fce84f0d807289e93024639368 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 13:23:27 +0530 Subject: [PATCH 91/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index a4e03dbaa..8d2957aa6 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -59,11 +59,11 @@ jobs: run: | bash ./docker-compose.sh build-multiarch - - name: Export digest - id: export_digest - run: | - digest=$(docker inspect --format='{{index .RepoDigests 0}}' ${{ env.IMAGE_NAME }}:latest) - echo "DIGEST=${digest#*:}" >> $GITHUB_ENV + # - name: Export digest + # id: export_digest + # run: | + # digest=$(docker inspect --format='{{index .RepoDigests 0}}' ${{ env.IMAGE_NAME }}:latest) + # echo "DIGEST=${digest#*:}" >> $GITHUB_ENV - name: Logout from DockerHub run: docker logout From a06316121ecde7ebcc38627f6ca22d11744d5f85 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 13:25:26 +0530 Subject: [PATCH 92/93] Update docker-compose.yml --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 492ec6579..d7383d654 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,7 +17,7 @@ # limitations under the License. # -version: "2.4" +version: "3.7" services: deps: From 579d4287d375d31e55d7815929821ea48297c070 Mon Sep 17 00:00:00 2001 From: Yasindu Dissanayake <23ug1-0099@sltc.ac.lk> Date: Wed, 7 Aug 2024 14:51:17 +0530 Subject: [PATCH 93/93] Update multiarch-dockerhub.yml --- .github/workflows/multiarch-dockerhub.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/multiarch-dockerhub.yml b/.github/workflows/multiarch-dockerhub.yml index 8d2957aa6..8b6cb3c78 100644 --- a/.github/workflows/multiarch-dockerhub.yml +++ b/.github/workflows/multiarch-dockerhub.yml @@ -1,7 +1,8 @@ name: Build and Push Docker Image on: - workflow_dispatch: + pull_request: + workflow_dispatch: push: branches: - master