diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 126ba41..62d6968 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -34,9 +34,13 @@ jobs: - 4.3.7 - 3.4.7 include: - - lib_hxml: lib.hxml - haxe: 3.4.7 - lib_hxml: lib_haxe3.hxml + hxml_suffix: _haxe3 + - haxe: latest + os: ubuntu-24.04-arm + + env: + TEST_LIB_HXML: test-workflow/lib${{ matrix.hxml_suffix }}.hxml steps: @@ -57,11 +61,11 @@ jobs: uses: ./ with: haxe-version: ${{ matrix.haxe }} - cache-dependency-path: 'test-workflow/${{ matrix.lib_hxml }}' + cache-dependency-path: ${{ env.TEST_LIB_HXML }} - run: haxe -version - - run: haxelib install test-workflow/${{ matrix.lib_hxml }} --always + - run: haxelib install ${{ env.TEST_LIB_HXML }} --always - name: Compile test code run: | diff --git a/dist/index.js b/dist/index.js index 7648784..2d1642e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -211,6 +211,9 @@ class NekoAsset extends Asset { if (this.env.platform === 'osx' && this.version.startsWith('2.4')) { return 'osx-universal'; } + if (this.env.platform === 'linux' && this.env.arch === 'arm64') { + return 'linux-arm64'; + } return `${this.env.platform}${this.env.arch}`; } get fileNameWithoutExt() { @@ -252,7 +255,7 @@ class HaxeAsset extends Asset { return 'mac'; } case 'linux': { - return 'linux64'; + return this.env.arch === 'arm64' ? 'linux-arm64' : 'linux64'; } case 'win': { return 'windows64'; @@ -295,8 +298,8 @@ class Env { if (arch === 'x64') { return '64'; } - if (arch === 'arm64' && this.platform === 'osx') { - return '64'; + if (arch === 'arm64') { + return this.platform === 'osx' ? '64' : 'arm64'; } throw new Error(`${arch} not supported`); } diff --git a/src/asset.ts b/src/asset.ts index 39a3894..05ca5a8 100644 --- a/src/asset.ts +++ b/src/asset.ts @@ -170,6 +170,10 @@ export class NekoAsset extends Asset { return 'osx-universal'; } + if (this.env.platform === 'linux' && this.env.arch === 'arm64') { + return 'linux-arm64'; + } + return `${this.env.platform}${this.env.arch}`; } @@ -224,7 +228,7 @@ export class HaxeAsset extends Asset { } case 'linux': { - return 'linux64'; + return this.env.arch === 'arm64' ? 'linux-arm64' : 'linux64'; } case 'win': { @@ -279,8 +283,8 @@ export class Env { return '64'; } - if (arch === 'arm64' && this.platform === 'osx') { - return '64'; + if (arch === 'arm64') { + return this.platform === 'osx' ? '64' : 'arm64'; } throw new Error(`${arch} not supported`);