summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x.github/workflows/ci.generate.ts21
-rw-r--r--.github/workflows/ci.yml26
-rw-r--r--test_ffi/tests/test.js4
3 files changed, 40 insertions, 11 deletions
diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts
index 6ee7f7545..f155e8d53 100755
--- a/.github/workflows/ci.generate.ts
+++ b/.github/workflows/ci.generate.ts
@@ -9,6 +9,7 @@ const cacheVersion = 73;
const ubuntuX86Runner = "ubuntu-22.04";
const ubuntuX86XlRunner = "ubuntu-22.04-xl";
+const ubuntuARMRunner = "ubicloud-standard-16-arm";
const windowsX86Runner = "windows-2022";
const windowsX86XlRunner = "windows-2022-xl";
const macosX86Runner = "macos-12";
@@ -26,6 +27,11 @@ const Runners = {
runner:
`\${{ github.repository == 'denoland/deno' && '${ubuntuX86XlRunner}' || '${ubuntuX86Runner}' }}`,
},
+ linuxArm: {
+ os: "linux",
+ arch: "aarch64",
+ runner: ubuntuARMRunner,
+ },
macosX86: {
os: "macos",
arch: "x86_64",
@@ -400,6 +406,14 @@ const ci = {
job: "lint",
profile: "debug",
}, {
+ ...Runners.linuxArm,
+ job: "test",
+ profile: "debug",
+ }, {
+ ...Runners.linuxArm,
+ job: "test",
+ profile: "release",
+ }, {
...Runners.macosX86,
job: "lint",
profile: "debug",
@@ -456,7 +470,10 @@ const ci = {
...installDenoStep,
},
...installPythonSteps.map((s) =>
- withCondition(s, "matrix.job != 'lint'")
+ withCondition(
+ s,
+ "matrix.job != 'lint' && (matrix.os != 'linux' || matrix.arch != 'aarch64')",
+ )
),
{
// only necessary for benchmarks
@@ -732,7 +749,7 @@ const ci = {
{
name: "Autobahn testsuite",
if: [
- "matrix.os == 'linux' &&",
+ "(matrix.os == 'linux' && matrix.arch != 'aarch64') &&",
"matrix.job == 'test' &&",
"matrix.profile == 'release' &&",
"!startsWith(github.ref, 'refs/tags/')",
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a363caef8..84f56c380 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -29,7 +29,7 @@ jobs:
git config --global fetch.parallel 32
if: github.event.pull_request.draft == true
- name: Clone repository
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 5
submodules: false
@@ -111,6 +111,16 @@ jobs:
runner: ubuntu-22.04
job: lint
profile: debug
+ - os: linux
+ arch: aarch64
+ runner: ubicloud-standard-16-arm
+ job: test
+ profile: debug
+ - os: linux
+ arch: aarch64
+ runner: ubicloud-standard-16-arm
+ job: test
+ profile: release
- os: macos
arch: x86_64
runner: macos-12
@@ -133,7 +143,7 @@ jobs:
git config --global fetch.parallel 32
if: '!(matrix.skip)'
- name: Clone repository
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 5
submodules: false
@@ -169,9 +179,9 @@ jobs:
uses: actions/setup-python@v4
with:
python-version: 3.11
- if: '!(matrix.skip) && (matrix.job != ''lint'')'
+ if: '!(matrix.skip) && (matrix.job != ''lint'' && (matrix.os != ''linux'' || matrix.arch != ''aarch64''))'
- name: Remove unused versions of Python
- if: '!(matrix.skip) && (matrix.job != ''lint'' && (matrix.os == ''windows''))'
+ if: '!(matrix.skip) && (matrix.job != ''lint'' && (matrix.os != ''linux'' || matrix.arch != ''aarch64'') && (matrix.os == ''windows''))'
shell: pwsh
run: |-
$env:PATH -split ";" |
@@ -184,7 +194,7 @@ jobs:
with:
node-version: 18
- name: Install protoc
- uses: arduino/setup-protoc@v2
+ uses: arduino/setup-protoc@v3
with:
version: '21.12'
repo-token: '${{ secrets.GITHUB_TOKEN }}'
@@ -331,7 +341,7 @@ jobs:
fi
if: '!(matrix.skip)'
- name: Cache Cargo home
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: |-
~/.cargo/registry/index
@@ -441,7 +451,7 @@ jobs:
gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-$(rustc -vV | sed -n "s|host: ||p")-latest.txt
- name: Autobahn testsuite
if: |-
- !(matrix.skip) && (matrix.os == 'linux' &&
+ !(matrix.skip) && ((matrix.os == 'linux' && matrix.arch != 'aarch64') &&
matrix.job == 'test' &&
matrix.profile == 'release' &&
!startsWith(github.ref, 'refs/tags/'))
@@ -622,7 +632,7 @@ jobs:
body_path: target/release/release-notes.md
draft: true
- name: Save cache build output (main)
- uses: actions/cache/save@v3
+ uses: actions/cache/save@v4
if: '!(matrix.skip) && ((matrix.job == ''test'' || matrix.job == ''lint'') && github.ref == ''refs/heads/main'')'
with:
path: |-
diff --git a/test_ffi/tests/test.js b/test_ffi/tests/test.js
index c1aa68fad..8e57cd34b 100644
--- a/test_ffi/tests/test.js
+++ b/test_ffi/tests/test.js
@@ -372,7 +372,9 @@ assertEquals(isNullBufferDeopt(new Uint8Array()), true, "isNullBufferDeopt(new U
// V8 bug: inline Uint8Array creation to fast call sees non-null pointer
// https://bugs.chromium.org/p/v8/issues/detail?id=13489
-assertEquals(isNullBuffer(new Uint8Array()), false, "isNullBuffer(new Uint8Array()) !== false");
+if (Deno.build.os != "linux" || Deno.build.arch != "aarch64") {
+ assertEquals(isNullBuffer(new Uint8Array()), false, "isNullBuffer(new Uint8Array()) !== false");
+}
// Externally backed ArrayBuffer has a non-null data pointer, even though its length is zero.
const externalZeroBuffer = new Uint8Array(Deno.UnsafePointerView.getArrayBuffer(ptr0, 0));