Skip to content

Windows Arm64/x86_64 CI/Nightly #138

Windows Arm64/x86_64 CI/Nightly

Windows Arm64/x86_64 CI/Nightly #138

Workflow file for this run

name: Windows Arm64/x86_64 CI/Nightly
on:
# pull_request: {} # Uncomment to run in CI mode to build ELD PR branch.
schedule:
# 9:00 PM Central
- cron: '0 2 * * *'
workflow_dispatch: {}
permissions:
contents: write
jobs:
build-windows:
if: github.repository == 'qualcomm/eld'
permissions:
contents: write
env:
BASE_BRANCH_NAME: ${{ github.event.pull_request.base.ref }}
ELD_REPO: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name || github.repository }}
ELD_REF: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.ref || github.ref_name }}
name: ${{ matrix.name }}
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- runner: windows-2022
arch: x64
name: Windows-x86_64
- runner: windows-11-arm
arch: ARM64
name: Windows-Arm64
steps:
- name: Map Git usr/bin to a space-free drive and prepend to PATH
shell: pwsh
run: |
subst P: "C:\Program Files\Git\usr\bin"
'P:\' | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Set up Python 3.14
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 #v7.0.0
with:
python-version: '3.14'
- name: Report Python version
shell: bash
run: echo "::notice::Using Python $(python --version) from $(which python)"
- name: Checkout llvm-project
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: llvm/llvm-project
ref: ${{ env.BASE_BRANCH_NAME }}
path: nightly/llvm-project
- name: Checkout ELD
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: ${{ env.ELD_REPO }}
ref: ${{ env.ELD_REF }}
path: nightly/llvm-project/llvm/tools/eld
fetch-depth: 0
- name: Record pre-build entry
if: github.event_name == 'schedule'
uses: ./nightly/llvm-project/llvm/tools/eld/.github/workflows/BuildStatusDataRecorder
with:
enabled: true
project: "nightly/llvm-project/llvm/tools/eld"
stage: "pre-"
workflow-name: "windows_nightly"
record-mode: "record"
status: "fail"
run-id: ${{github.run_id}}
arch-name: ${{ matrix.arch }}
branch-name: "${{ env.ELD_REF }}"
- name: Configure CMake
working-directory: nightly
shell: bash
run: |
mkdir -p obj
cd obj
cmake -G "Visual Studio 17 2022" -A ${{ matrix.arch }} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \
-DLLVM_ENABLE_PROJECTS="llvm;clang;clang-tools-extra" \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DLLVM_TARGETS_TO_BUILD="ARM;AArch64;RISCV;Hexagon;X86" \
-DELD_TARGETS_TO_BUILD='ARM;AArch64;RISCV;Hexagon;X86;Template' \
../llvm-project/llvm
- name: Build
working-directory: nightly/obj
shell: bash
run: cmake --build . --config Release
- name: Install PyYAML
shell: bash
run: |
echo "Installing dependencies using $(python --version) at $(which python)"
python -m pip install pyyaml psutil
- name: Run tests
working-directory: nightly/obj
shell: bash
run: cmake --build . --config Release --target check-eld
- name: Summarize test results
working-directory: nightly/obj
shell: bash
run: cmake --build . --config Release --target check-eld-summary
- name: Update build entry
if: github.event_name == 'schedule'
uses: ./nightly/llvm-project/llvm/tools/eld/.github/workflows/BuildStatusDataRecorder
with:
enabled: true
project: "nightly/llvm-project/llvm/tools/eld"
stage: "post-"
workflow-name: "windows_nightly"
record-mode: "update"
status: "pass"
run-id: ${{github.run_id}}
arch-name: ${{ matrix.arch }}
branch-name: "${{ env.ELD_REF }}"
- name: Clean up
if: always()
shell: bash
run: rm -rf nightly