From e1c749ee11a993b4fc30ecb111ad85d5b95eba65 Mon Sep 17 00:00:00 2001 From: dmathieu Date: Thu, 29 Feb 2024 14:13:24 +0100 Subject: [PATCH 01/14] try running compatibility tests on arm64 with actuated --- .github/workflows/ci.yml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2d02cc07a22..cec36c24153 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -108,16 +108,22 @@ jobs: strategy: matrix: go-version: ["~1.22.0", "~1.21.3"] - os: [ubuntu-latest, macos-latest, windows-latest] - # GitHub Actions does not support arm* architectures on default - # runners. It is possible to accomplish this with a self-hosted runner - # if we want to add this in the future: - # https://docs.github.com/en/actions/hosting-your-own-runners/using-self-hosted-runners-in-a-workflow - arch: ["386", amd64] + os: [ubuntu-latest, macos-latest, windows-latest, actuated-arm64-4cpu-4gb] + arch: ["386", amd64, arm64] exclude: # Not a supported Go OS/architecture. + - os: ubuntu-latest + arch: arm64 - os: macos-latest + arch: arm64 + - os: macos-latest + arch: "386" + - os: windows-latest + arch: arm64 + - os: actuated-arm64-4cpu-4gb arch: "386" + - os: actuated-arm64-4cpu-4gb + arch: amd64 runs-on: ${{ matrix.os }} steps: - name: Checkout code From 08064b9129cccdcedd48660db67f3be0cb88aa37 Mon Sep 17 00:00:00 2001 From: dmathieu Date: Thu, 29 Feb 2024 14:32:16 +0100 Subject: [PATCH 02/14] try nested matrix --- .github/workflows/ci.yml | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cec36c24153..40ce0fe0e34 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -108,23 +108,20 @@ jobs: strategy: matrix: go-version: ["~1.22.0", "~1.21.3"] - os: [ubuntu-latest, macos-latest, windows-latest, actuated-arm64-4cpu-4gb] - arch: ["386", amd64, arm64] - exclude: - # Not a supported Go OS/architecture. + platform: - os: ubuntu-latest - arch: arm64 - - os: macos-latest - arch: arm64 - - os: macos-latest arch: "386" + - os: ubuntu-latest + arch: amd64 + - os: macos-latest + arch: amd64 - os: windows-latest - arch: arm64 - - os: actuated-arm64-4cpu-4gb arch: "386" - - os: actuated-arm64-4cpu-4gb + - os: windows-latest arch: amd64 - runs-on: ${{ matrix.os }} + - os: actuated-arm64-4cpu-4gb + arch: arm64 + runs-on: ${{ matrix.platform.os }} steps: - name: Checkout code uses: actions/checkout@v4 @@ -136,7 +133,7 @@ jobs: cache-dependency-path: "**/go.sum" - name: Run tests env: - GOARCH: ${{ matrix.arch }} + GOARCH: ${{ matrix.platform.arch }} run: make test-short test-compatibility: From 9a7e5a960b5e5a5194cdd890eb001cac30344561 Mon Sep 17 00:00:00 2001 From: dmathieu Date: Thu, 29 Feb 2024 17:14:07 +0100 Subject: [PATCH 03/14] setup vmmeter --- .github/workflows/ci.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 40ce0fe0e34..3e9100f4542 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -123,6 +123,17 @@ jobs: arch: arm64 runs-on: ${{ matrix.platform.os }} steps: + - name: Set up arkade + uses: alexellis/setup-arkade@master + if: ${{ startsWith(matrix.platform.os, 'actuated') }} + - name: Install vmmeter + if: ${{ startsWith(matrix.platform.os, 'actuated') }} + run: | + sudo -E arkade oci install ghcr.io/openfaasltd/vmmeter:latest --path /usr/local/bin/ + - name: Run vmmeter + uses: self-actuated/vmmeter-action@master + if: ${{ startsWith(matrix.platform.os, 'actuated') }} + - name: Checkout code uses: actions/checkout@v4 - name: Install Go From 7ccb0f8de0d879a79c416cf27a7f658f2b10d42e Mon Sep 17 00:00:00 2001 From: dmathieu Date: Thu, 29 Feb 2024 17:26:45 +0100 Subject: [PATCH 04/14] try less cpu and less gb with actuated --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e9100f4542..a4241df78e7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,7 +119,7 @@ jobs: arch: "386" - os: windows-latest arch: amd64 - - os: actuated-arm64-4cpu-4gb + - os: actuated-arm64-1cpu-1gb arch: arm64 runs-on: ${{ matrix.platform.os }} steps: From 149c1c554c4ebba32fe367102e0a1b7260ca8c7e Mon Sep 17 00:00:00 2001 From: dmathieu Date: Thu, 29 Feb 2024 17:33:27 +0100 Subject: [PATCH 05/14] add comment about vmmeter --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a4241df78e7..b9533e84bf8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -123,6 +123,9 @@ jobs: arch: arm64 runs-on: ${{ matrix.platform.os }} steps: + # Setup VMMeter for actuated jobs, so we can track CPU/memory usage and + # finetune our instance size accordingly. + # See https://actuated.dev/blog/arm-ci-cncf-ampere - name: Set up arkade uses: alexellis/setup-arkade@master if: ${{ startsWith(matrix.platform.os, 'actuated') }} From 295bb388ea3452f10f7b10f8195b828c57fa234f Mon Sep 17 00:00:00 2001 From: Damien Mathieu <42@dmathieu.com> Date: Fri, 1 Mar 2024 00:07:00 +0100 Subject: [PATCH 06/14] Update .github/workflows/ci.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Robert Pająk --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9533e84bf8..517a53bec30 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -127,7 +127,7 @@ jobs: # finetune our instance size accordingly. # See https://actuated.dev/blog/arm-ci-cncf-ampere - name: Set up arkade - uses: alexellis/setup-arkade@master + uses: alexellis/setup-arkade@v3 if: ${{ startsWith(matrix.platform.os, 'actuated') }} - name: Install vmmeter if: ${{ startsWith(matrix.platform.os, 'actuated') }} From de232bc1064283c33762e576e9aadbfb7caa847c Mon Sep 17 00:00:00 2001 From: Damien Mathieu <42@dmathieu.com> Date: Fri, 1 Mar 2024 00:07:10 +0100 Subject: [PATCH 07/14] Update .github/workflows/ci.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Robert Pająk --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 517a53bec30..3476ea8dcb7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -134,7 +134,7 @@ jobs: run: | sudo -E arkade oci install ghcr.io/openfaasltd/vmmeter:latest --path /usr/local/bin/ - name: Run vmmeter - uses: self-actuated/vmmeter-action@master + uses: self-actuated/vmmeter-action@v1 if: ${{ startsWith(matrix.platform.os, 'actuated') }} - name: Checkout code From e1bc00deb19a089bc17e025141bd8a422bef65b6 Mon Sep 17 00:00:00 2001 From: Damien Mathieu <42@dmathieu.com> Date: Wed, 6 Mar 2024 10:55:07 +0100 Subject: [PATCH 08/14] Update .github/workflows/ci.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Robert Pająk --- .github/workflows/ci.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3476ea8dcb7..7b23a42d3b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -123,19 +123,6 @@ jobs: arch: arm64 runs-on: ${{ matrix.platform.os }} steps: - # Setup VMMeter for actuated jobs, so we can track CPU/memory usage and - # finetune our instance size accordingly. - # See https://actuated.dev/blog/arm-ci-cncf-ampere - - name: Set up arkade - uses: alexellis/setup-arkade@v3 - if: ${{ startsWith(matrix.platform.os, 'actuated') }} - - name: Install vmmeter - if: ${{ startsWith(matrix.platform.os, 'actuated') }} - run: | - sudo -E arkade oci install ghcr.io/openfaasltd/vmmeter:latest --path /usr/local/bin/ - - name: Run vmmeter - uses: self-actuated/vmmeter-action@v1 - if: ${{ startsWith(matrix.platform.os, 'actuated') }} - name: Checkout code uses: actions/checkout@v4 From 4a0243fa4085fff2c3d5e2266850ac8285f45cfd Mon Sep 17 00:00:00 2001 From: Damien Mathieu <42@dmathieu.com> Date: Wed, 6 Mar 2024 11:35:00 +0100 Subject: [PATCH 09/14] Update .github/workflows/ci.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Robert Pająk --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7b23a42d3b2..cf3e312f0ca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,7 +119,7 @@ jobs: arch: "386" - os: windows-latest arch: amd64 - - os: actuated-arm64-1cpu-1gb + - os: actuated-arm64-2cpu-8gb arch: arm64 runs-on: ${{ matrix.platform.os }} steps: From 999108893b63621c7ae0b2740dbaaf686810c49c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Wed, 6 Mar 2024 11:53:48 +0100 Subject: [PATCH 10/14] Update .github/workflows/ci.yml --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf3e312f0ca..abebe08c062 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -123,7 +123,6 @@ jobs: arch: arm64 runs-on: ${{ matrix.platform.os }} steps: - - name: Checkout code uses: actions/checkout@v4 - name: Install Go From 145f6d68d73e4ef98405babefff9d331bbab0e14 Mon Sep 17 00:00:00 2001 From: dmathieu Date: Wed, 6 Mar 2024 13:39:26 +0100 Subject: [PATCH 11/14] update compatibility matrix --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index aa9baa6c627..8f6091e0a79 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,8 @@ Currently, this project supports the following environments. | Ubuntu | 1.21 | amd64 | | Ubuntu | 1.22 | 386 | | Ubuntu | 1.21 | 386 | +| Ubuntu | 1.22 | arm64 | +| Ubuntu | 1.21 | arm64 | | MacOS | 1.22 | amd64 | | MacOS | 1.21 | amd64 | | Windows | 1.22 | amd64 | From 3f440cbddfd8b2c2e2b794dd4646aee5c5a18249 Mon Sep 17 00:00:00 2001 From: dmathieu Date: Wed, 6 Mar 2024 14:47:10 +0100 Subject: [PATCH 12/14] use linux name for arm builds --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8f6091e0a79..47f9a41f66d 100644 --- a/README.md +++ b/README.md @@ -53,8 +53,8 @@ Currently, this project supports the following environments. | Ubuntu | 1.21 | amd64 | | Ubuntu | 1.22 | 386 | | Ubuntu | 1.21 | 386 | -| Ubuntu | 1.22 | arm64 | -| Ubuntu | 1.21 | arm64 | +| Linux | 1.22 | arm64 | +| Linux | 1.21 | arm64 | | MacOS | 1.22 | amd64 | | MacOS | 1.21 | amd64 | | Windows | 1.22 | amd64 | From fe3b1ae0c0b9a9adcccf8021580e80108fe023c4 Mon Sep 17 00:00:00 2001 From: dmathieu Date: Tue, 12 Mar 2024 10:01:40 +0100 Subject: [PATCH 13/14] add changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68cc02b478e..4d6d0bef9dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,6 +50,7 @@ The next release will require at least [Go 1.21]. This module includes OpenTelemetry Go's implementation of the Logs Bridge API. This module is in an alpha state, it is subject to breaking changes. See our [versioning policy](./VERSIONING.md) for more info. (#4961) +- ARM64 platform to the compatibility testing suite. (#4994) ### Fixed From 3df6c741caff89a9eb362e405d5d617dcf4dc71b Mon Sep 17 00:00:00 2001 From: dmathieu Date: Tue, 19 Mar 2024 08:38:57 +0100 Subject: [PATCH 14/14] add link to actuated doc --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index abebe08c062..41e756a8adf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,6 +119,8 @@ jobs: arch: "386" - os: windows-latest arch: amd64 + # ARM64 compatibility tests are using actuated runners + # See https://github.com/open-telemetry/community/blob/main/docs/using-actuated.md - os: actuated-arm64-2cpu-8gb arch: arm64 runs-on: ${{ matrix.platform.os }}