diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b5e28aea0b..8fa6e7af5f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,6 +47,7 @@ jobs: matrix: os: - ubuntu-latest + - ubuntu-24.04-arm - macos-latest - windows-latest version: @@ -75,6 +76,7 @@ jobs: matrix: os: - ubuntu-latest + - ubuntu-24.04-arm - macos-latest - windows-latest version: @@ -104,6 +106,7 @@ jobs: matrix: os: - ubuntu-latest + - ubuntu-24.04-arm - macos-latest - windows-latest runs-on: ${{ matrix.os }} diff --git a/dist/post_run/index.js b/dist/post_run/index.js index 590b7dd950..3bfdc9e2a3 100644 --- a/dist/post_run/index.js +++ b/dist/post_run/index.js @@ -93771,6 +93771,9 @@ const getAssetURL = (versionConfig) => { } let arch = os_1.default.arch(); switch (arch) { + case "arm64": + arch = "arm64"; + break; case "x64": arch = "amd64"; break; @@ -94389,6 +94392,7 @@ exports.findLintVersion = findLintVersion; const core = __importStar(__nccwpck_require__(7484)); const httpm = __importStar(__nccwpck_require__(4844)); const fs = __importStar(__nccwpck_require__(9896)); +const os_1 = __importDefault(__nccwpck_require__(857)); const path_1 = __importDefault(__nccwpck_require__(6928)); const install_1 = __nccwpck_require__(232); const versionRe = /^v(\d+)\.(\d+)(?:\.(\d+))?$/; @@ -94485,10 +94489,14 @@ async function findLintVersion(mode) { // if the patched version is passed, just use it if (reqLintVersion?.major !== null && reqLintVersion?.minor != null && reqLintVersion?.patch !== null) { return new Promise((resolve) => { + let arch = "amd64"; + if (os_1.default.arch() === "arm64") { + arch = "arm64"; + } const versionWithoutV = `${reqLintVersion.major}.${reqLintVersion.minor}.${reqLintVersion.patch}`; resolve({ TargetVersion: `v${versionWithoutV}`, - AssetURL: `https://github.com/golangci/golangci-lint/releases/download/v${versionWithoutV}/golangci-lint-${versionWithoutV}-linux-amd64.tar.gz`, + AssetURL: `https://github.com/golangci/golangci-lint/releases/download/v${versionWithoutV}/golangci-lint-${versionWithoutV}-linux-${arch}.tar.gz`, }); }); } diff --git a/dist/run/index.js b/dist/run/index.js index f134eb72fc..4008ce228e 100644 --- a/dist/run/index.js +++ b/dist/run/index.js @@ -93771,6 +93771,9 @@ const getAssetURL = (versionConfig) => { } let arch = os_1.default.arch(); switch (arch) { + case "arm64": + arch = "arm64"; + break; case "x64": arch = "amd64"; break; @@ -94389,6 +94392,7 @@ exports.findLintVersion = findLintVersion; const core = __importStar(__nccwpck_require__(7484)); const httpm = __importStar(__nccwpck_require__(4844)); const fs = __importStar(__nccwpck_require__(9896)); +const os_1 = __importDefault(__nccwpck_require__(857)); const path_1 = __importDefault(__nccwpck_require__(6928)); const install_1 = __nccwpck_require__(232); const versionRe = /^v(\d+)\.(\d+)(?:\.(\d+))?$/; @@ -94485,10 +94489,14 @@ async function findLintVersion(mode) { // if the patched version is passed, just use it if (reqLintVersion?.major !== null && reqLintVersion?.minor != null && reqLintVersion?.patch !== null) { return new Promise((resolve) => { + let arch = "amd64"; + if (os_1.default.arch() === "arm64") { + arch = "arm64"; + } const versionWithoutV = `${reqLintVersion.major}.${reqLintVersion.minor}.${reqLintVersion.patch}`; resolve({ TargetVersion: `v${versionWithoutV}`, - AssetURL: `https://github.com/golangci/golangci-lint/releases/download/v${versionWithoutV}/golangci-lint-${versionWithoutV}-linux-amd64.tar.gz`, + AssetURL: `https://github.com/golangci/golangci-lint/releases/download/v${versionWithoutV}/golangci-lint-${versionWithoutV}-linux-${arch}.tar.gz`, }); }); } diff --git a/src/install.ts b/src/install.ts index 658fb24ce1..28929c9888 100644 --- a/src/install.ts +++ b/src/install.ts @@ -22,6 +22,9 @@ const getAssetURL = (versionConfig: VersionConfig): string => { } let arch = os.arch() switch (arch) { + case "arm64": + arch = "arm64" + break case "x64": arch = "amd64" break diff --git a/src/version.ts b/src/version.ts index aaa294697c..d1421e5c26 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1,6 +1,7 @@ import * as core from "@actions/core" import * as httpm from "@actions/http-client" import * as fs from "fs" +import os from "os" import path from "path" import { InstallMode } from "./install" @@ -139,10 +140,14 @@ export async function findLintVersion(mode: InstallMode): Promise // if the patched version is passed, just use it if (reqLintVersion?.major !== null && reqLintVersion?.minor != null && reqLintVersion?.patch !== null) { return new Promise((resolve) => { + let arch: string = "amd64" + if (os.arch() === "arm64") { + arch = "arm64" + } const versionWithoutV = `${reqLintVersion.major}.${reqLintVersion.minor}.${reqLintVersion.patch}` resolve({ TargetVersion: `v${versionWithoutV}`, - AssetURL: `https://github.com/golangci/golangci-lint/releases/download/v${versionWithoutV}/golangci-lint-${versionWithoutV}-linux-amd64.tar.gz`, + AssetURL: `https://github.com/golangci/golangci-lint/releases/download/v${versionWithoutV}/golangci-lint-${versionWithoutV}-linux-${arch}.tar.gz`, }) }) }