arm-windows #55
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |