build linux/arm packages

change-type: minor
This commit is contained in:
balenaCI 2023-05-16 00:02:37 +00:00 committed by ab77
parent a0a97c5f40
commit d61c300750
No known key found for this signature in database
GPG Key ID: D094F44E5E29445A
9 changed files with 169 additions and 51 deletions

View File

@ -8,6 +8,9 @@ inputs:
secrets: secrets:
description: "JSON stringified object containing all the secrets from the calling workflow" description: "JSON stringified object containing all the secrets from the calling workflow"
required: true required: true
variables:
description: "JSON stringified object containing all the variables from the calling workflow"
required: true
# --- custom environment # --- custom environment
XCODE_APP_LOADER_EMAIL: XCODE_APP_LOADER_EMAIL:
@ -27,7 +30,7 @@ runs:
- name: Download custom source artifact - name: Download custom source artifact
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
name: custom-${{ github.event.pull_request.head.sha || github.event.head_commit.id }}-${{ runner.os }} name: custom-${{ github.event.pull_request.head.sha || github.event.head_commit.id }}-${{ runner.os }}-${{ runner.arch }}
path: ${{ runner.temp }} path: ${{ runner.temp }}
- name: Extract custom source artifact - name: Extract custom source artifact

View File

@ -8,6 +8,9 @@ inputs:
secrets: secrets:
description: "JSON stringified object containing all the secrets from the calling workflow" description: "JSON stringified object containing all the secrets from the calling workflow"
required: true required: true
variables:
description: "JSON stringified object containing all the variables from the calling workflow"
required: true
# --- custom environment # --- custom environment
NODE_VERSION: NODE_VERSION:
@ -51,6 +54,6 @@ runs:
- name: Upload custom artifact - name: Upload custom artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: custom-${{ github.event.pull_request.head.sha || github.event.head_commit.id }}-${{ runner.os }} name: custom-${{ github.event.pull_request.head.sha || github.event.head_commit.id }}-${{ runner.os }}-${{ runner.arch }}
path: ${{ runner.temp }}/custom.tgz path: ${{ runner.temp }}/custom.tgz
retention-days: 1 retention-days: 1

View File

@ -3,14 +3,27 @@ name: Flowzone
on: on:
pull_request: pull_request:
types: [opened, synchronize, closed] types: [opened, synchronize, closed]
branches: branches: [main, master]
- "main" pull_request_target:
- "master" types: [opened, synchronize, closed]
branches: [main, master]
jobs: jobs:
flowzone: flowzone:
name: Flowzone name: Flowzone
uses: product-os/flowzone/.github/workflows/flowzone.yml@v4.7.1 uses: product-os/flowzone/.github/workflows/flowzone.yml@v4.7.1
# prevent duplicate workflow executions for pull_request and pull_request_target
if: |
(
github.event.pull_request.head.repo.full_name == github.repository &&
github.event_name == 'pull_request'
) || (
github.event.pull_request.head.repo.full_name != github.repository &&
github.event_name == 'pull_request_target'
)
secrets: inherit secrets: inherit
with: with:
tests_run_on: '["ubuntu-20.04","macos-11","windows-2019"]' custom_runs_on: '[["self-hosted","Linux","distro:focal","X64"],["self-hosted","Linux","distro:focal","ARM64"],["macos-11"],["windows-2019"]]'
repo_config: true
repo_description: "The official balena CLI tool."
github_prerelease: true

View File

@ -87,7 +87,7 @@ async function diffPkgOutput(pkgOut: string) {
'tests', 'tests',
'test-data', 'test-data',
'pkg', 'pkg',
`expected-warnings-${process.platform}.txt`, `expected-warnings-${process.platform}-${arch}.txt`,
); );
const absSavedPath = path.join(ROOT, relSavedPath); const absSavedPath = path.join(ROOT, relSavedPath);
const ignoreStartsWith = [ const ignoreStartsWith = [
@ -180,9 +180,18 @@ async function execPkg(...args: any[]) {
* to be directly executed from inside another binary executable.) * to be directly executed from inside another binary executable.)
*/ */
async function buildPkg() { async function buildPkg() {
// https://github.com/vercel/pkg#targets
let targets = `linux-${arch}`;
// TBC: not possible to build for macOS or Windows arm64 on x64 nodes
if (process.platform === 'darwin') {
targets = `macos-x64`;
}
if (process.platform === 'win32') {
targets = `win-x64`;
}
const args = [ const args = [
'--target', '--targets',
'host', targets,
'--output', '--output',
'build-bin/balena', 'build-bin/balena',
'package.json', 'package.json',

84
npm-shrinkwrap.json generated
View File

@ -1790,16 +1790,16 @@
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}, },
"node_modules/@oclif/command": { "node_modules/@oclif/command": {
"version": "1.8.24", "version": "1.8.25",
"resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.24.tgz", "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.25.tgz",
"integrity": "sha512-FbSChfBO2QFeC5eEeXmi8+kZvBCDzYdpEKhOMaz0sfKMerwSlKxsqWQPGWCjTHaowIUMtnMD3VZ8yfX5qE7SAQ==", "integrity": "sha512-teCfKH6GNF46fiCn/P5EMHX93RE3KJAW4i0sq3X9phrzs6807WRauhythdc8OKINxd+LpqwQ1i5bnaCKvLZRcQ==",
"dependencies": { "dependencies": {
"@oclif/config": "^1.18.2", "@oclif/config": "^1.18.2",
"@oclif/errors": "^1.3.6", "@oclif/errors": "^1.3.6",
"@oclif/help": "^1.0.1", "@oclif/help": "^1.0.1",
"@oclif/parser": "^3.8.10", "@oclif/parser": "^3.8.10",
"debug": "^4.1.1", "debug": "^4.1.1",
"semver": "^7.5.0" "semver": "^7.5.1"
}, },
"engines": { "engines": {
"node": ">=12.0.0" "node": ">=12.0.0"
@ -3048,9 +3048,9 @@
} }
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "16.18.29", "version": "16.18.30",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.29.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.30.tgz",
"integrity": "sha512-cal+XTYF4JBwG82kw3m9ktTOyUj7GXcO9i2o+t49y/OF+3asYfpHqTROF1UbV91e71g/UB5wNeL5hfqPthzp8Q==" "integrity": "sha512-Kmp/wBZk19Dn7uRiol8kF8agnf8m0+TU9qIwyfPmXglVxMlmiIz0VQSMw5oFgwhmD2aKTlfBIO5FtsVj3y7hKQ=="
}, },
"node_modules/@types/node-cleanup": { "node_modules/@types/node-cleanup": {
"version": "2.1.2", "version": "2.1.2",
@ -3788,9 +3788,9 @@
} }
}, },
"node_modules/asn1": { "node_modules/asn1": {
"version": "0.2.4", "version": "0.2.6",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
"dependencies": { "dependencies": {
"safer-buffer": "~2.1.0" "safer-buffer": "~2.1.0"
} }
@ -10983,9 +10983,9 @@
} }
}, },
"node_modules/is-core-module": { "node_modules/is-core-module": {
"version": "2.12.0", "version": "2.12.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz",
"integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==",
"dependencies": { "dependencies": {
"has": "^1.0.3" "has": "^1.0.3"
}, },
@ -17439,9 +17439,9 @@
} }
}, },
"node_modules/semver": { "node_modules/semver": {
"version": "7.5.0", "version": "7.5.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
"integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
"dependencies": { "dependencies": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
}, },
@ -18237,19 +18237,19 @@
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
}, },
"node_modules/ssh2": { "node_modules/ssh2": {
"version": "1.12.0", "version": "1.13.0",
"resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.12.0.tgz", "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.13.0.tgz",
"integrity": "sha512-7mcLu8biO6/BjQQ1iCjCmuBiF0hXxo+JlHpJBPDTVsxU7evscWWiRUgYF5XIs4gLKmiPRHA0maund11QLWyDJg==", "integrity": "sha512-CIZBFRRY1y9mAZSqBGFE4EB4dNJad2ysT2PqO8OpkiI3UTB/gUZwE5EaN16qVyQ6s/M7EgC/iaV/MnjdlvnuzA==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"asn1": "^0.2.4", "asn1": "^0.2.6",
"bcrypt-pbkdf": "^1.0.2" "bcrypt-pbkdf": "^1.0.2"
}, },
"engines": { "engines": {
"node": ">=10.16.0" "node": ">=10.16.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"cpu-features": "~0.0.6", "cpu-features": "~0.0.7",
"nan": "^2.17.0" "nan": "^2.17.0"
} }
}, },
@ -23789,16 +23789,16 @@
} }
}, },
"@oclif/command": { "@oclif/command": {
"version": "1.8.24", "version": "1.8.25",
"resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.24.tgz", "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.25.tgz",
"integrity": "sha512-FbSChfBO2QFeC5eEeXmi8+kZvBCDzYdpEKhOMaz0sfKMerwSlKxsqWQPGWCjTHaowIUMtnMD3VZ8yfX5qE7SAQ==", "integrity": "sha512-teCfKH6GNF46fiCn/P5EMHX93RE3KJAW4i0sq3X9phrzs6807WRauhythdc8OKINxd+LpqwQ1i5bnaCKvLZRcQ==",
"requires": { "requires": {
"@oclif/config": "^1.18.2", "@oclif/config": "^1.18.2",
"@oclif/errors": "^1.3.6", "@oclif/errors": "^1.3.6",
"@oclif/help": "^1.0.1", "@oclif/help": "^1.0.1",
"@oclif/parser": "^3.8.10", "@oclif/parser": "^3.8.10",
"debug": "^4.1.1", "debug": "^4.1.1",
"semver": "^7.5.0" "semver": "^7.5.1"
} }
}, },
"@oclif/config": { "@oclif/config": {
@ -24890,9 +24890,9 @@
} }
}, },
"@types/node": { "@types/node": {
"version": "16.18.29", "version": "16.18.30",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.29.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.30.tgz",
"integrity": "sha512-cal+XTYF4JBwG82kw3m9ktTOyUj7GXcO9i2o+t49y/OF+3asYfpHqTROF1UbV91e71g/UB5wNeL5hfqPthzp8Q==" "integrity": "sha512-Kmp/wBZk19Dn7uRiol8kF8agnf8m0+TU9qIwyfPmXglVxMlmiIz0VQSMw5oFgwhmD2aKTlfBIO5FtsVj3y7hKQ=="
}, },
"@types/node-cleanup": { "@types/node-cleanup": {
"version": "2.1.2", "version": "2.1.2",
@ -25528,9 +25528,9 @@
"integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA=="
}, },
"asn1": { "asn1": {
"version": "0.2.4", "version": "0.2.6",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
"requires": { "requires": {
"safer-buffer": "~2.1.0" "safer-buffer": "~2.1.0"
} }
@ -31217,9 +31217,9 @@
} }
}, },
"is-core-module": { "is-core-module": {
"version": "2.12.0", "version": "2.12.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz",
"integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==",
"requires": { "requires": {
"has": "^1.0.3" "has": "^1.0.3"
} }
@ -36283,9 +36283,9 @@
} }
}, },
"semver": { "semver": {
"version": "7.5.0", "version": "7.5.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
"integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
"requires": { "requires": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
} }
@ -36928,13 +36928,13 @@
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
}, },
"ssh2": { "ssh2": {
"version": "1.12.0", "version": "1.13.0",
"resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.12.0.tgz", "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.13.0.tgz",
"integrity": "sha512-7mcLu8biO6/BjQQ1iCjCmuBiF0hXxo+JlHpJBPDTVsxU7evscWWiRUgYF5XIs4gLKmiPRHA0maund11QLWyDJg==", "integrity": "sha512-CIZBFRRY1y9mAZSqBGFE4EB4dNJad2ysT2PqO8OpkiI3UTB/gUZwE5EaN16qVyQ6s/M7EgC/iaV/MnjdlvnuzA==",
"requires": { "requires": {
"asn1": "^0.2.4", "asn1": "^0.2.6",
"bcrypt-pbkdf": "^1.0.2", "bcrypt-pbkdf": "^1.0.2",
"cpu-features": "~0.0.6", "cpu-features": "~0.0.7",
"nan": "^2.17.0" "nan": "^2.17.0"
} }
}, },

View File

@ -0,0 +1,90 @@
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/open/xdg-open
%2: path-to-executable/xdg-open
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/open/xdg-open
%2: path-to-executable/xdg-open
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/etcher-sdk/node_modules/drivelist/build/Release/drivelist.node
%2: path-to-executable/drivelist.node
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/etcher-sdk/node_modules/drivelist/scripts/darwin.sh
%2: path-to-executable/drivelist/darwin.sh
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/etcher-sdk/node_modules/drivelist/scripts/linux.sh
%2: path-to-executable/drivelist/linux.sh
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/etcher-sdk/node_modules/drivelist/scripts/win32.bat
%2: path-to-executable/drivelist/win32.bat
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/etcher-sdk/node_modules/drivelist/build/Release/drivelist.node
%2: path-to-executable/drivelist.node
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/etcher-sdk/node_modules/drivelist/scripts/darwin.sh
%2: path-to-executable/drivelist/darwin.sh
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/etcher-sdk/node_modules/drivelist/scripts/linux.sh
%2: path-to-executable/drivelist/linux.sh
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/etcher-sdk/node_modules/drivelist/scripts/win32.bat
%2: path-to-executable/drivelist/win32.bat
> Warning Cannot resolve 'path'
node_modules/@balena/compose/dist/parse/schemas/index.js
Dynamic require may fail at run time, because the requested file
is unknown at compilation time and not included into executable.
Use a string literal as an argument for 'require', or leave it
as is and specify the resolved file name in 'scripts' option.
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/drivelist/build/Release/drivelist.node
%2: path-to-executable/drivelist.node
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/drivelist/scripts/darwin.sh
%2: path-to-executable/drivelist/darwin.sh
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/drivelist/scripts/linux.sh
%2: path-to-executable/drivelist/linux.sh
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/drivelist/scripts/win32.bat
%2: path-to-executable/drivelist/win32.bat
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/drivelist/build/Release/drivelist.node
%2: path-to-executable/drivelist.node
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/drivelist/scripts/darwin.sh
%2: path-to-executable/drivelist/darwin.sh
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/drivelist/scripts/linux.sh
%2: path-to-executable/drivelist/linux.sh
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/drivelist/scripts/win32.bat
%2: path-to-executable/drivelist/win32.bat
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/opn/xdg-open
%2: path-to-executable/xdg-open
> Warning Cannot include file %1 into executable.
The file must be distributed with executable as %2.
%1: node_modules/opn/xdg-open
%2: path-to-executable/xdg-open
prebuild-install warn install No prebuilt binaries found (target=v16.16.0 runtime=node arch=arm64 libc= platform=linux)
prebuild-install warn install No prebuilt binaries found (target=v16.16.0 runtime=node arch=arm64 libc= platform=linux)
prebuild-install warn install No prebuilt binaries found (target=v16.16.0 runtime=node arch=arm64 libc= platform=linux)
prebuild-install warn install No prebuilt binaries found (target=v16.16.0 runtime=node arch=arm64 libc= platform=linux)