Skip to content

Commit

Permalink
linux-musl-arm64
Browse files Browse the repository at this point in the history
  • Loading branch information
DenisRumyantsev committed Apr 15, 2024
1 parent b34a9c3 commit 10bf71d
Show file tree
Hide file tree
Showing 11 changed files with 72 additions and 5 deletions.
23 changes: 23 additions & 0 deletions .azure-pipelines/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ parameters:
- name: alpine_x64
type: boolean
default: true
- name: alpine_arm64
type: boolean
default: true
- name: macOS_x64
type: boolean
default: true
Expand Down Expand Up @@ -241,6 +244,26 @@ extends:
publishArtifacts: ${{ parameters.publishArtifacts }}
buildAlternatePackage: false

# Alpine (ARM64)
- ${{ if parameters.alpine_arm64 }}:
- template: /.azure-pipelines/build-jobs.yml@self
parameters:
jobName: build_alpine_arm64
displayName: Alpine (ARM64)
pool:
name: 1ES-ABTT-Shared-ARM-64-Pool
vmImage: abtt-mariner_arm64
os: linux
# container: # arm64v8/alpine (N/A)
os: linux-musl
arch: arm64
branch: ${{ parameters.branch }}
unitTests: ${{ parameters.test }}
functionalTests: false
sign: false
publishArtifacts: ${{ parameters.publishArtifacts }}
buildAlternatePackage: false

# macOS (x64)
- ${{ if parameters.macOS_x64 }}:
- template: /.azure-pipelines/build-jobs.yml@self
Expand Down
5 changes: 5 additions & 0 deletions .vsts.ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ parameters:
type: boolean
displayName: Alpine (x64)
default: true
- name: alpine_arm64
type: boolean
displayName: Alpine (ARM64)
default: true
- name: macOS_x64
type: boolean
displayName: macOS (x64)
Expand Down Expand Up @@ -59,5 +63,6 @@ extends:
linux_arm: ${{ parameters.linux_arm }}
linux_arm64: ${{ parameters.linux_arm64 }}
alpine_x64: ${{ parameters.alpine_x64 }}
alpine_arm64: ${{ parameters.alpine_arm64 }}
macOS_x64: ${{ parameters.macOS_x64 }}
macOS_arm64: ${{ parameters.macOS_arm64 }}
6 changes: 6 additions & 0 deletions assets.json
Original file line number Diff line number Diff line change
Expand Up @@ -88,5 +88,11 @@
"platform": "linux-musl-x64",
"version": "<AGENT_VERSION>",
"downloadUrl": "https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-musl-x64-<AGENT_VERSION>.tar.gz"
},
{
"name": "vsts-agent-linux-musl-arm64-<AGENT_VERSION>.tar.gz",
"platform": "linux-musl-arm64",
"version": "<AGENT_VERSION>",
"downloadUrl": "https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-musl-arm64-<AGENT_VERSION>.tar.gz"
}
]
10 changes: 10 additions & 0 deletions releaseNote.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
| Linux ARM | [vsts-agent-linux-arm-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-arm-<AGENT_VERSION>.tar.gz) | <HASH> |
| Linux ARM64 | [vsts-agent-linux-arm64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-arm64-<AGENT_VERSION>.tar.gz) | <HASH> |
| Linux musl x64 | [vsts-agent-linux-musl-x64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-musl-x64-<AGENT_VERSION>.tar.gz) | <HASH> |
| Linux musl ARM64 | [vsts-agent-linux-musl-arm64-<AGENT_VERSION>.tar.gz](https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-musl-arm64-<AGENT_VERSION>.tar.gz) | <HASH> |

After Download:

Expand Down Expand Up @@ -65,13 +66,22 @@ C:\myagent> Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO

## Alpine x64

***Note:*** Node 6 does not exist for Alpine.

``` bash
~/$ mkdir myagent && cd myagent
~/myagent$ tar xzf ~/Downloads/vsts-agent-linux-musl-x64-<AGENT_VERSION>.tar.gz
```

## Alpine ARM64

***Note:*** Node 6 does not exist for Alpine.

``` bash
~/$ mkdir myagent && cd myagent
~/myagent$ tar xzf ~/Downloads/vsts-agent-linux-musl-ARM64-<AGENT_VERSION>.tar.gz
```

## Alternate Agent Downloads

Alternate packages below do not include Node 6 and are only suitable for users who do not use Node 6 dependent tasks.
Expand Down
6 changes: 3 additions & 3 deletions src/Agent.Worker/JobExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -169,13 +169,13 @@ public async Task<List<IStep>> InitializeJob(IExecutionContext jobContext, Pipel
var taskManager = HostContext.GetService<ITaskManager>();
await taskManager.DownloadAsync(context, message.Steps);

if (!AgentKnobs.DisableNode6Tasks.GetValue(context).AsBoolean())
if (!AgentKnobs.DisableNode6Tasks.GetValue(context).AsBoolean() && !PlatformUtil.RunningOnAlpine)
{
Trace.Info("Downloading Node 6 runner.");
var nodeUtil = new NodeJsUtil(HostContext);
await nodeUtil.DownloadNodeRunnerAsync(context, register.Token);
}
}

// Parse all Task conditions.
Trace.Info("Parsing all task's condition inputs.");
var expression = HostContext.GetService<IExpressionManager>();
Expand Down
3 changes: 3 additions & 0 deletions src/Common.props
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@
<PropertyGroup Condition="'$(OSPlatform)' == 'OS_LINUX' AND '$(PackageRuntime)' == 'linux-musl-x64'">
<OSArchitecture>X64</OSArchitecture>
</PropertyGroup>
<PropertyGroup Condition="'$(OSPlatform)' == 'OS_LINUX' AND '$(PackageRuntime)' == 'linux-musl-arm64'">
<OSArchitecture>ARM64</OSArchitecture>
</PropertyGroup>
<PropertyGroup Condition="'$(OSPlatform)' == 'OS_LINUX' AND '$(PackageRuntime)' == 'linux-arm'">
<OSArchitecture>ARM</OSArchitecture>
</PropertyGroup>
Expand Down
7 changes: 6 additions & 1 deletion src/Misc/InstallAgentPackage.template.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,16 @@
<AddTaskPackageData packageType="pipelines-agent" platform="linux-arm64" hashValue="<HASH_VALUE>" version="<AGENT_VERSION>" downloadUrl="https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/pipelines-agent-linux-arm64-<AGENT_VERSION>.tar.gz" infoUrl="https://go.microsoft.com/fwlink/?LinkId=798199" filename="pipelines-agent-linux-arm64-<AGENT_VERSION>.tar.gz" />
</StepData>
</ServicingStep>
<ServicingStep name="Add Linux musl x64 agent package" stepPerformer="DistributedTask" stepType="AddTaskPackage">
<ServicingStep name="Add x64 Linux musl agent package" stepPerformer="DistributedTask" stepType="AddTaskPackage">
<StepData>
<AddTaskPackageData packageType="agent" platform="linux-musl-x64" hashValue="<HASH_VALUE>" version="<AGENT_VERSION>" downloadUrl="https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-x64-<AGENT_VERSION>.tar.gz" infoUrl="https://go.microsoft.com/fwlink/?LinkId=798199" filename="vsts-agent-linux-musl-x64-<AGENT_VERSION>.tar.gz" />
</StepData>
</ServicingStep>
<ServicingStep name="Add ARM64 Linux musl agent package" stepPerformer="DistributedTask" stepType="AddTaskPackage">
<StepData>
<AddTaskPackageData packageType="agent" platform="linux-musl-arm64" hashValue="<HASH_VALUE>" version="<AGENT_VERSION>" downloadUrl="https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-arm64-<AGENT_VERSION>.tar.gz" infoUrl="https://go.microsoft.com/fwlink/?LinkId=798199" filename="vsts-agent-linux-musl-arm64-<AGENT_VERSION>.tar.gz" />
</StepData>
</ServicingStep>
<ServicingStep name="Add x64 Windows agent package" stepPerformer="DistributedTask" stepType="AddTaskPackage">
<StepData>
<AddTaskPackageData packageType="agent" platform="win-x64" hashValue="<HASH_VALUE>" version="<AGENT_VERSION>" downloadUrl="https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-win-x64-<AGENT_VERSION>.zip" infoUrl="https://go.microsoft.com/fwlink/?LinkId=798199" filename="vsts-agent-win-x64-<AGENT_VERSION>.zip" />
Expand Down
2 changes: 2 additions & 0 deletions src/Misc/Publish.template.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ if ($pwd -notlike '*tfsgheus20') {

Add-DistributedTaskPackage -PackageType agent -Platform linux-musl-x64 -Version <AGENT_VERSION> -DownloadUrl https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-musl-x64-<AGENT_VERSION>.tar.gz -HashValue <HASH_VALUE> -InfoUrl https://go.microsoft.com/fwlink/?LinkId=798199 -Filename vsts-agent-linux-musl-x64-<AGENT_VERSION>.tar.gz

Add-DistributedTaskPackage -PackageType agent -Platform linux-musl-arm64 -Version <AGENT_VERSION> -DownloadUrl https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-linux-musl-arm64-<AGENT_VERSION>.tar.gz -HashValue <HASH_VALUE> -InfoUrl https://go.microsoft.com/fwlink/?LinkId=798199 -Filename vsts-agent-linux-musl-arm64-<AGENT_VERSION>.tar.gz

Add-DistributedTaskPackage -PackageType agent -Platform osx-arm64 -Version <AGENT_VERSION> -DownloadUrl https://vstsagentpackage.azureedge.net/agent/<AGENT_VERSION>/vsts-agent-osx-arm64-<AGENT_VERSION>.tar.gz -HashValue <HASH_VALUE> -InfoUrl https://go.microsoft.com/fwlink/?LinkId=798199 -Filename vsts-agent-osx-arm64-<AGENT_VERSION>.tar.gz

# alternate packages
Expand Down
9 changes: 9 additions & 0 deletions src/Misc/externals.sh
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,15 @@ else
ARCH="darwin-arm64"
acquireExternalTool "${NODE_URL}/v${NODE16_VERSION}/node-v${NODE16_VERSION}-${ARCH}.tar.gz" node16 fix_nested_dir
acquireExternalTool "${NODE_URL}/v${NODE20_VERSION}/node-v${NODE20_VERSION}-${ARCH}.tar.gz" node20_1 fix_nested_dir
elif [[ "$PACKAGERUNTIME" == "linux-musl-arm64" ]]; then
ARCH="linux-arm64-musl"

if [[ "$INCLUDE_NODE10" == "true" ]]; then
acquireExternalTool "${CONTAINER_URL}/nodejs/${ARCH}/node-v${NODE10_VERSION}-${ARCH}.tar.gz" node10/bin fix_nested_dir
fi

acquireExternalTool "${CONTAINER_URL}/nodejs/${ARCH}/node-v${NODE16_VERSION}-${ARCH}.tar.gz" node16/bin fix_nested_dir
acquireExternalTool "${CONTAINER_URL}/nodejs/${ARCH}/node-v${NODE20_VERSION}-${ARCH}.tar.gz" node20_1/bin fix_nested_dir
else
case $PACKAGERUNTIME in
"linux-musl-x64") ARCH="linux-x64-musl";;
Expand Down
1 change: 1 addition & 0 deletions src/Test/L0/ConstantGenerationL0.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ public void BuildConstantGenerateSucceed()
"linux-arm",
"linux-arm64",
"linux-musl-x64",
"linux-musl-arm64",
"osx-x64",
"osx-arm64"
};
Expand Down
5 changes: 4 additions & 1 deletion src/dev.sh
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ function detect_platform_and_runtime_id ()

if [ -e /etc/alpine-release ]; then
DETECTED_RUNTIME_ID='linux-musl-x64'
if [ $(uname -m) == 'aarch64' ]; then
DETECTED_RUNTIME_ID='linux-musl-arm64'
fi
fi
elif [[ "$CURRENT_PLATFORM" == 'darwin' ]]; then
DETECTED_RUNTIME_ID='osx-x64'
Expand Down Expand Up @@ -298,7 +301,7 @@ else
RUNTIME_ID=$DETECTED_RUNTIME_ID
fi

_VALID_RIDS='linux-x64:linux-arm:linux-arm64:linux-musl-x64:osx-x64:osx-arm64:win-x64:win-x86'
_VALID_RIDS='linux-x64:linux-arm:linux-arm64:linux-musl-x64:linux-musl-arm64:osx-x64:osx-arm64:win-x64:win-x86'
if [[ ":$_VALID_RIDS:" != *:$RUNTIME_ID:* ]]; then
failed "must specify a valid target runtime ID (one of: $_VALID_RIDS)"
fi
Expand Down

0 comments on commit 10bf71d

Please sign in to comment.