Skip to content

Commit 7b09509

Browse files
Merge pull request #1865 from madeline-underwood/github_win_arm
GitHub win arm_JA to approve
2 parents ecc6886 + e2d6dea commit 7b09509

File tree

3 files changed

+57
-50
lines changed

3 files changed

+57
-50
lines changed

content/learning-paths/laptops-and-desktops/gh-arm-runners-win/_index.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ cascade:
77

88
minutes_to_complete: 20
99

10-
who_is_this_for: This is an introductory tutorial for software developers interested in automating Windows application builds on Arm architecture using GitHub Actions.
10+
who_is_this_for: This introductory tutorial is for software developers looking to automate Windows application builds on Arm architecture using GitHub Actions.
1111

1212
learning_objectives:
13-
- Learn about GitHub Arm-hosted Windows runners.
14-
- Understand how to configure workflows for Arm-hosted runners.
15-
- Automate the build process of Windows applications using GitHub Actions.
13+
- Describe GitHub Arm-hosted Windows runners.
14+
- Configure workflows to run on Arm-hosted runners.
15+
- Automate Windows application builds with GitHub Actions.
1616

17-
prerequisites:
17+
prerequisites:
1818
- A GitHub account.
19-
- Basic knowledge of GitHub Actions.
19+
- Familiarity with GitHub Actions.
2020

2121
author:
2222
- Pareena Verma

content/learning-paths/laptops-and-desktops/gh-arm-runners-win/automate-win-app.md

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,31 @@ weight: 3
66
### FIXED, DO NOT MODIFY
77
layout: learningpathall
88
---
9+
10+
{{% notice Learning Tip %}}
911
In this section, you will learn how to automate the build process of a Windows application using GitHub Arm-hosted runners. You will use the application in the [Optimize Windows applications using Arm Performance Libraries Learning Path](/learning-paths/laptops-and-desktops/windows_armpl/).
12+
{{% /notice %}}
1013

11-
### Overview of the Windows Application
14+
### About the Windows Application
1215

13-
A basic overview of the application is provided here but for details on building the application refer to the [Optimize Windows applications using Arm Performance Libraries Learning Path](/learning-paths/laptops-and-desktops/windows_armpl/2-multithreading/).
16+
This section provides a basic overview of the application. For detailed build instructions, see the [Optimize Windows applications using Arm Performance Libraries Learning Path](/learning-paths/laptops-and-desktops/windows_armpl/2-multithreading/).
1417

15-
The source code for the application that renders a rotating 3D cube to perform the calculations using different programming options is provided in this GitHub repository.
18+
The source code for the rotating 3D cube application, which demonstrates multiple programming approaches to performing rotation calculations, is available in this GitHub repository.
1619

1720
```console
1821
https://github.com/arm/SpinTheCubeInGDI
1922
```
2023

2124
The application implements a spinning cube and consists of four key components:
22-
- **Shape Generation**: Generates vertices for a sphere using a golden ratio-based algorithm.
23-
- **Rotation Calculation**: Uses a rotation matrix to rotate the 3D shape around the X, Y, and Z axes.
24-
- **Drawing**: Draws the transformed vertices of the shapes on the screen using a Windows API.
25-
- **Performance Measurement**: Measures and displays the number of transforms per second.
25+
- **Shape Generation**: generates vertices for a sphere using a golden ratio-based algorithm.
26+
- **Rotation Calculation**: uses a rotation matrix to rotate the 3D shape around the X, Y, and Z axes.
27+
- **Drawing**: draws the transformed vertices of the shapes on the screen using a Windows API.
28+
- **Performance Measurement**: measures and displays the number of transforms per second.
2629

2730
The code has two options to calculate the rotation:
2831

29-
1. Multithreading: the application uses multithreading to improve performance by distributing the rotation calculations across multiple threads.
30-
2. Arm Performance Libraries: the application uses optimized math library functions for the rotation calculations.
32+
1. **Multithreading**: distributes rotation calculations across multiple threads to improve performance.
33+
2. **Arm Performance Libraries**: uses Arm-optimized math functions to accelerate rotation calculations.
3134

3235
You will learn how to automate the build process for this application by using GitHub Actions with Arm-hosted Windows runners.
3336

@@ -38,44 +41,44 @@ The [GitHub Actions workflow `msbuild.yml`](https://github.com/arm/SpinTheCubeIn
3841
Below is an explanation of the steps in the workflow:
3942

4043

41-
**Trigger Events**: The workflow runs when there is a push or pull request event on the main branch.
44+
**Trigger Events**: the workflow runs when there is a push or pull request event on the main branch.
4245

43-
**Job Definition**: A single job named `build` is defined. It runs on the GitHub Arm-hosted Windows runner (`windows-11-arm`) as shown:
46+
**Job Definition**: a single job named `build` is defined. It runs on the GitHub Arm-hosted Windows runner (`windows-11-arm`) as shown:
4447

4548
```console
4649
jobs:
4750
build:
4851
runs-on: windows-11-arm
4952
```
50-
**Checkout Repository**: Uses the `actions/checkout@v4` action to fetch the code.
53+
**Checkout Repository**: uses the `actions/checkout@v4` action to fetch the code.
5154

52-
**Add MSBuild to PATH**: Adds MSBuild tools for the build process using `microsoft/[email protected]`.
55+
**Add MSBuild to PATH**: adds MSBuild tools for the build process using `microsoft/[email protected]`.
5356

54-
**Restore Dependencies**: Runs `nuget restore` to restore NuGet packages required by the solution.
57+
**Restore Dependencies**: runs `nuget restore` to restore NuGet packages required by the solution.
5558

56-
**Create Download Directory**: Creates a directory to store downloaded files and verifies the Python version.
59+
**Create Download Directory**: creates a directory to store downloaded files and verifies the Python version.
5760

58-
**Download ARM Performance Libraries**: Downloads the Windows installer for ARM Performance Libraries (APL) and verifies the downloaded files.
61+
**Download ARM Performance Libraries**: downloads the Windows installer for ARM Performance Libraries (APL) and verifies the downloaded files.
5962

60-
**Install ARM Performance Libraries**: Installs the downloaded ARM Performance Libraries using `msiexec.exe` with a quiet mode and logs the process.
63+
**Install ARM Performance Libraries**: installs the downloaded ARM Performance Libraries using `msiexec.exe` with a quiet mode and logs the process.
6164

62-
**Check Installation Success**: Verifies the success of the APL installation by checking the exit code and logs.
65+
**Check Installation Success**: verifies the success of the APL installation by checking the exit code and logs.
6366

64-
**Build the Solution**: Runs MSBuild to build the solution with the specified configuration (Debug) and platform (ARM64).
67+
**Build the Solution**: runs MSBuild to build the solution with the specified configuration (Debug) and platform (ARM64).
6568

66-
**Upload Build Artifact**: Uploads the built executable as an artifact using `actions/upload-artifact@v4`.
69+
**Upload Build Artifact**: uploads the built executable as an artifact using `actions/upload-artifact@v4`.
6770

68-
This workflow automates the process of dependency management, environment setup, building the project, and storing the final artifact all using a GitHub Arm-hosted Windows runner.
71+
This workflow automates dependency management, environment setup, project compilation, and artifact storage - all using a GitHub Arm-hosted Windows runner.
6972

70-
### Fork the repository and run the workflow
73+
### Fork the Repository and Run the Workflow
7174

72-
To run the workflow, you can fork the repository and run the workflow in your GitHub account.
75+
To run the workflow in your own GitHub account, start by forking the repository.
7376

74-
To fork the repository, go to the repository page on GitHub and click the `Fork` button in the top right corner. This will create a copy of the repository under your own GitHub account.
77+
To fork the repository, go to the repository page on GitHub and click the **Fork** button in the top right corner. This will create a copy of the repository under your own GitHub account.
7578

76-
You can then run the workflow in your forked repository by navigating to the `Actions` tab and selecting the MSBuild workflow, then clicking `Run workflow`.
79+
You can then run the workflow in your forked repository by navigating to the **Actions** tab and selecting the MSBuild workflow, then clicking **Run workflow**.
7780

78-
You can view the `Actions` logs in the repository for each step.
81+
You can view the **Actions** logs in the repository for each step.
7982
![action #center](_images/actions.png)
8083

8184
You have learned how to build a Windows application and upload the result as an artifact of your workflow using the GitHub Arm-hosted Windows runner.

content/learning-paths/laptops-and-desktops/gh-arm-runners-win/introduction.md

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,19 @@ weight: 2
66
### FIXED, DO NOT MODIFY
77
layout: learningpathall
88
---
9-
GitHub Arm-hosted runners for Windows are now available in public preview, providing a powerful and efficient way to build, test, and deploy your Windows applications on Arm without the need for virtualization. These runners come with a Windows 11 Desktop image, equipped with many tools to get started with your workflows.
9+
### Overview
10+
11+
GitHub now supports Arm-hosted Windows runners, making it easy to run workflows on Arm hardware without managing infrastructure yourself. This Learning Path introduces what they are, how to use them, and how to configure your own larger runner.
1012

1113
### What are GitHub Arm-hosted Runners?
1214

1315
Runners are the machines that execute jobs in a GitHub Actions workflow. An Arm-hosted runner is managed by GitHub and uses the Arm architecture, meaning you don't need to provide a server to run Actions workflows. GitHub provides the system and runs the Action workflows for you.
1416

17+
GitHub Arm-hosted runners for Windows are now available in public preview, providing a powerful and efficient way to build, test, and deploy your Windows applications on Arm without the need for virtualization. These runners come with a Windows 11 Desktop image, equipped with many tools to get started with your workflows.
18+
1519
Arm-hosted runners are available for public repositories at no cost, subject to [standard usage limits](https://docs.github.com/en/actions/administering-github-actions/usage-limits-billing-and-administration#usage-limits).
1620

17-
### How to use GitHub Arm-hosted Windows Runners?
21+
### How Do I Use GitHub Arm-hosted Windows Runners?
1822

1923
To leverage the GitHub Windows Arm64 hosted runners, you need to use the following label in your public repository workflow runs:
2024

@@ -23,58 +27,58 @@ runs-on: windows-11-arm
2327
```
2428
2529
{{% notice Note %}}
26-
This label will not work in private repositories, the workflow will fail if you use it.
30+
This label does not work in private repositories - the workflow will fail if you use it.
2731
{{% /notice %}}
2832
2933
30-
### What types of GitHub-hosted runners are available?
34+
### What Types of GitHub-hosted Runners Are Available?
3135
32-
Two types of GitHub-hosted runners are available; standard runners and larger runners. Larger runners are differentiated from standard runners because you can control the amount of RAM, the number of CPUs, and configure the allocated disk space. You can also use the Windows 11 Desktop Arm Image with larger runners. To use this image on larger runners, you will need to create a new runner.
36+
GitHub offers two types of hosted runners: standard and larger runners. Larger runners give you more control—you can configure the amount of RAM, number of CPUs, and disk space. You can also use the Windows 11 Desktop Arm Image with larger runners. To use this image on larger runners, you will need to create a new runner.
3337
34-
### How can I create an GitHub Arm-hosted Windows larger runner?
38+
### How Do I Create a Larger GitHub Arm-hosted Windows Runner?
3539
3640
Arm-hosted runners are created at the organization level.
3741
38-
Navigate to your organization and select the `Settings` tab. On the left pane, select `Actions->Runners`.
42+
Navigate to your organization and select the **Settings** tab. On the left pane, select **Actions->Runners**.
3943
40-
On the `Runners` page, select the `New runner` drop-down on the top right, and then select `New GitHub-hosted runner`.
44+
On the **Runners** page, select the **New runner** drop-down on the top right, and then select **New GitHub-hosted runner**.
4145
4246
![new-runner #center](_images/new-runner.png)
4347
44-
Specify a name for the runner, this is the `runs-on` field in your workflows so make the name clear for others who use it.
48+
Specify a name for the runner. This name is used in the `runs-on` field in your workflows, so make it clear for others who use it.
4549

46-
Choose Windows ARM64 for the platform and click `Save`.
50+
Choose Windows ARM64 for the platform and click **Save**.
4751

4852
![platform #center](_images/platform.png)
4953

50-
Specify the operating system image for the runner, select `Microsoft Windows 11 Desktop by Arm Limited`, and click `Save`.
54+
Specify the operating system image for the runner, select **Microsoft Windows 11 Desktop by Arm Limited**, and click **Save**.
5155

5256
![image #center](_images/win_image.png)
5357

54-
Select the size of the larger runner you need and click `Save`.
58+
Select the size of the larger runner you need and click **Save**.
5559

5660
![specifications #center](_images/size.png)
5761

58-
The `Capacity` section includes the maximum concurrency, which is the number of jobs to run at the same time.
62+
The **Capacity** section includes the maximum concurrency, which is the number of jobs to run at the same time.
5963

60-
You can also set the runner group for this runner. The runner group controls the settings for this runner. Pay attention to the runner group as you may need to return to the runner group settings if any configuration changes are needed.
64+
You can also set the runner group for this runner. The runner group controls this runner’s settings. You may need to return to the group if configuration changes are required.
6165

6266
![capacity #center](_images/capacity.png)
6367

64-
Finally, click `Create runner`.
68+
Finally, click **Create runner**.
6569

6670
Your new Arm-hosted Windows larger runner is ready to use. Remember the runner name so you can use it in your workflows with the `runs-on` label.
6771

68-
### How do I check the server hardware used by the Arm-hosted Windows Runners?
72+
### How Do I Check the Server Hardware Used by the Arm-hosted Windows Runners?
6973

7074
The Arm-hosted runners are powered by Microsoft Azure Cobalt 100 processors, based on the Arm Neoverse N2, with 4 vCPUs and Armv9-A features, including Scalable Vector Extension 2 (SVE2).
7175

72-
The output from running the `wmic` command on the Arm-hosted runner is below.
76+
The following output shows the result of running the `wmic` command on the Arm-hosted runner.
7377

7478
![Arm-hosted runner info #center](_images/cpuinfo.png)
7579

7680

77-
### How can I find the software installed on the Arm-hosted Windows Runners?
81+
### How Can I Find the Software Installed on the Arm-hosted Windows Runners?
7882

7983
To find out more about the software installed on the Arm-hosted runners, visit the [GitHub Actions Partner Images repository](https://github.com/actions/partner-runner-images/). Check the [image documentation](https://github.com/actions/partner-runner-images/blob/main/images/arm-windows-11-image.md) for a list of software packages installed on the Windows 11 by Arm Limited image. You can also use this repository to report issues or request additional software.
8084

0 commit comments

Comments
 (0)