Skip to content

arm-windows

arm-windows #55

Workflow file for this run

name: arm-windows
on:
# Workflow dispatched manually
workflow_dispatch:
# Workflow under a monthly schedule
schedule:
- cron: '30 0 1 * *'
permissions:
contents: read
packages: write
jobs:
# The -minimal image can be fetched faster for simple tasks
# It uses windows/nanoserver as initial layer
arm-windows-minimal:
strategy:
matrix:
target: [ arm ]
version: [ 9.70.4, 9.70.2, 9.70.1, 9.60.4 ]
os: [ 2022, 2025 ]
fail-fast: false
runs-on: windows-${{ matrix.os }}
steps:
# https://github.com/actions/runner-images/issues/13729
- name: Ensure Docker is running (Windows)
shell: pwsh
run: |
Start-Service docker
for ($i = 0; $i -lt 30; $i++) {
docker info *> $null
if ($LASTEXITCODE -eq 0) { exit 0 }
Start-Sleep 2
}
docker info
- name: 'Checkout GitHub Action'
uses: actions/checkout@main
- if: github.event_name != 'pull_request'
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- if: github.event_name != 'pull_request'
run: |
docker build -t ghcr.io/${{ github.repository_owner }}/${{ matrix.target }}:${{ matrix.version }}-windows-${{ matrix.os }}-minimal `
-f .github/workflows/windows/Dockerfile-${{ matrix.target }}.minimal `
--build-arg TARGET=${{ matrix.target }} `
--build-arg VERSION=${{ matrix.version }} `
--build-arg WINVER=${{ matrix.os }} `
.github/workflows/windows;
docker push ghcr.io/${{ github.repository_owner }}/${{ matrix.target}}:${{ matrix.version }}-windows-${{ matrix.os }}-minimal;
shell: pwsh
# The -base image includes `icstat`, `iarbuild`, and `cspybat`
# It uses windows/servercore as initial layer
arm-windows-base:
strategy:
matrix:
target: [ arm ]
version: [ 9.70.4, 9.70.2, 9.70.1, 9.60.4 ]
os: [ 2022, 2025 ]
fail-fast: false
runs-on: windows-${{ matrix.os }}
steps:
# https://github.com/actions/runner-images/issues/13729
- name: Ensure Docker is running (Windows)
shell: pwsh
run: |
Start-Service docker
for ($i = 0; $i -lt 30; $i++) {
docker info *> $null
if ($LASTEXITCODE -eq 0) { exit 0 }
Start-Sleep 2
}
docker info
- name: 'Checkout GitHub Action'
uses: actions/checkout@main
- if: github.event_name != 'pull_request'
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- if: github.event_name != 'pull_request'
run: |
docker build -t ghcr.io/${{ github.repository_owner }}/${{ matrix.target }}:${{ matrix.version }}-windows-${{ matrix.os }}-base `
-f .github/workflows/windows/Dockerfile-${{ matrix.target }}.base `
--build-arg TARGET=${{ matrix.target }} `
--build-arg VERSION=${{ matrix.version }} `
--build-arg WINVER=${{ matrix.os }} `
.github/workflows/windows;
docker push ghcr.io/${{ github.repository_owner }}/${{ matrix.target}}:${{ matrix.version }}-windows-${{ matrix.os }}-base;
shell: pwsh
# Generate variant images with the IAR Build Tools for Arm
# *including* vendor-specific device support
arm-windows-device:
needs: [ arm-windows-base ]
strategy:
matrix:
os: [ 2022, 2025 ]
target: [ arm ]
cfg:
- { version: 9.70.4, timestamp: 20260226111516 }
- { version: 9.70.2, timestamp: 20251103173334 }
- { version: 9.70.1, timestamp: 20250625133953 }
- { version: 9.60.4, timestamp: 20250303090915 }
variant:
- additional
- microchip
- renesas
- nxp
- infineon
- st
- ti
fail-fast: false
runs-on: windows-${{ matrix.os }}
steps:
# https://github.com/actions/runner-images/issues/13729
- name: Ensure Docker is running (Windows)
shell: pwsh
run: |
Start-Service docker
for ($i = 0; $i -lt 30; $i++) {
docker info *> $null
if ($LASTEXITCODE -eq 0) { exit 0 }
Start-Sleep 2
}
docker info
- uses: actions/checkout@main
- if: github.event_name != 'pull_request'
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- if: github.event_name != 'pull_request'
run: |
docker build -t ghcr.io/${{ github.repository_owner }}/${{ matrix.target }}:${{ matrix.cfg.version }}-windows-${{ matrix.os }}-${{ matrix.variant }} `
-f .github/workflows/windows/Dockerfile-${{ matrix.target }}.device `
--build-arg TARGET=${{ matrix.target }} `
--build-arg TIMESTAMP=${{ matrix.cfg.timestamp }} `
--build-arg VARIANT=${{ matrix.variant }} `
--build-arg VERSION=${{ matrix.cfg.version }} `
--build-arg REGISTRY_REPO=ghcr.io/${{ github.repository_owner }} `
--build-arg WINVER=${{ matrix.os }} `
.github/workflows/windows;
docker push ghcr.io/${{ github.repository_owner }}/${{ matrix.target }}:${{ matrix.cfg.version }}-windows-${{ matrix.os }}-${{ matrix.variant }};
shell: pwsh