Skip to content

Input cache key #99

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 107 additions & 0 deletions .github/compat/windows-intel-matrix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
os:
# - ubuntu-22.04
# - ubuntu-20.04
# - macos-14
# - macos-13
# - macos-12
# - windows-2022
- windows-2019
toolchain:
# - {compiler: gcc, version: 13}
# - {compiler: gcc, version: 12}
# - {compiler: gcc, version: 11}
# - {compiler: gcc, version: 10}
# - {compiler: gcc, version: 9}
# - {compiler: intel, version: '2024.1'}
# - {compiler: intel, version: '2024.0'}
# - {compiler: intel, version: '2023.2'}
# - {compiler: intel, version: '2023.1'}
# - {compiler: intel, version: '2023.0'}
# - {compiler: intel, version: '2022.2.1'}
# - {compiler: intel, version: '2022.2'}
# - {compiler: intel, version: '2022.1'}
# - {compiler: intel, version: '2022.0'}
# - {compiler: intel, version: '2021.4'}
# - {compiler: intel, version: '2021.2'}
# - {compiler: intel, version: '2021.1.2'}
# - {compiler: intel, version: '2021.1'}
# - {compiler: intel-classic, version: '2021.12'}
# - {compiler: intel-classic, version: '2021.11'}
- {compiler: intel-classic, version: '2021.10'}
# - {compiler: intel-classic, version: '2021.9'}
# - {compiler: intel-classic, version: '2021.8'}
# - {compiler: intel-classic, version: '2021.7.1'}
# - {compiler: intel-classic, version: '2021.7'}
# - {compiler: intel-classic, version: '2021.6'}
# - {compiler: intel-classic, version: '2021.5'}
# - {compiler: intel-classic, version: '2021.4'}
# - {compiler: intel-classic, version: '2021.3'}
# - {compiler: intel-classic, version: '2021.2'}
# - {compiler: intel-classic, version: '2021.1.2'}
# - {compiler: intel-classic, version: '2021.1'}
# - {compiler: lfortran, version: '0.31.0'}
# - {compiler: lfortran, version: '0.32.0'}
# - {compiler: lfortran, version: '0.33.0'}
# - {compiler: nvidia-hpc, version: '23.11'}
# - {compiler: nvidia-hpc, version: '23.9'}
# - {compiler: nvidia-hpc, version: '23.7'}
# - {compiler: nvidia-hpc, version: '23.5'}
# - {compiler: nvidia-hpc, version: '23.3'}
# - {compiler: nvidia-hpc, version: '23.1'}
# - {compiler: nvidia-hpc, version: '22.11'}
# - {compiler: nvidia-hpc, version: '22.9'}
# - {compiler: nvidia-hpc, version: '22.7'}
# - {compiler: nvidia-hpc, version: '22.5'}
# - {compiler: nvidia-hpc, version: '22.3'}
# - {compiler: nvidia-hpc, version: '22.2'}
# - {compiler: nvidia-hpc, version: '22.1'}
# - {compiler: nvidia-hpc, version: '21.11'}
# - {compiler: nvidia-hpc, version: '21.9'}
# - {compiler: nvidia-hpc, version: '21.7'}
# - {compiler: nvidia-hpc, version: '21.5'}
# - {compiler: nvidia-hpc, version: '21.3'}
# - {compiler: nvidia-hpc, version: '21.2'}
# - {compiler: nvidia-hpc, version: '21.1'}
# - {compiler: nvidia-hpc, version: '20.11'}
# - {compiler: nvidia-hpc, version: '20.9'}
# - {compiler: nvidia-hpc, version: '20.7'}
# exclude:
# # intel-classic >= 2021.10.0 not available for mac
# - os: macos-14
# toolchain: {compiler: intel-classic, version: 2021.12.0}
# - os: macos-13
# toolchain: {compiler: intel-classic, version: 2021.12.0}
# - os: macos-12
# toolchain: {compiler: intel-classic, version: 2021.12.0}
# - os: macos-14
# toolchain: {compiler: intel-classic, version: 2021.11.0}
# - os: macos-13
# toolchain: {compiler: intel-classic, version: 2021.11.0}
# - os: macos-12
# toolchain: {compiler: intel-classic, version: 2021.11.0}
# # ifx not available for mac
# - os: macos-14
# toolchain: {compiler: intel}
# - os: macos-13
# toolchain: {compiler: intel}
# - os: macos-12
# toolchain: {compiler: intel}
# # nvidia-hpc not available for mac
# - os: macos-14
# toolchain: {compiler: nvidia-hpc}
# - os: macos-13
# toolchain: {compiler: nvidia-hpc}
# - os: macos-12
# toolchain: {compiler: nvidia-hpc}
# # nvidia-hpc not available for windows
# - os: windows-2022
# toolchain: {compiler: nvidia-hpc}
# - os: windows-2019
# toolchain: {compiler: nvidia-hpc}
# # gcc<=10 not available for ARM mac
# - os: macos-14
# toolchain: {compiler: gcc, version: 8}
# - os: macos-14
# toolchain: {compiler: gcc, version: 9}
# - os: macos-14
# toolchain: {compiler: gcc, version: 10}
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
run: |
mode=${{ steps.mode.outputs.mode }}
if [[ "$mode" == "report" ]]; then
yq -o json matrix.yml > matrix.json
yq -o json windows-intel-matrix.yml > matrix.json
else
python matrix_json_from_csv.py "long_compat.csv" "matrix.json"
fi
Expand Down
23 changes: 21 additions & 2 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ inputs:
version:
description: "Version of toolchain or compiler"
required: false
cache_key:
description: "Windows Intel Cache Key"
required: false
default: ""
outputs:
fc:
description: "Path to Fortran compiler"
Expand All @@ -18,6 +22,7 @@ outputs:
cxx:
description: "Path to C++ compiler"
value: ${{ steps.outputs.outputs.cxx }}

runs:
using: "composite"
steps:
Expand All @@ -34,13 +39,26 @@ runs:
id: get-date
shell: bash
run: echo "date=$(/bin/date -u "+%Y%m%d")" >> "$GITHUB_OUTPUT"
- name: Generate cache_key
if: runner.os == 'Windows' && contains(inputs.compiler, 'intel')
id: generate-cache-key
shell: bash
run: |
if [ -z "${{ inputs.cache_key }}" ]; then
echo "No cache key provided. Generating default key."
cache_key="${{ runner.os }}-${{ inputs.compiler }}-${{ inputs.version }}-${{ env.date }}"
else
cache_key="${{ inputs.cache_key }}"
fi
echo "Using cache key: $cache_key"
echo "::set-output name=cache_key::$cache_key"
- name: Restore cache
if: runner.os == 'Windows' && contains(inputs.compiler, 'intel')
id: cache
uses: actions/cache/restore@v3
with:
path: ${{ env.ONEAPI_ROOT }}
key: ${{ runner.os }}-${{ inputs.compiler }}-${{ inputs.version }}-${{ steps.get-date.outputs.date }}
key: ${{ steps.generate-cache-key.outputs.cache_key }}

# Use micromamba for lfortran install on mac. Check if micromamba already
# exists, only install it if needed. If we install it, clean it up after.
Expand Down Expand Up @@ -116,7 +134,8 @@ runs:
uses: actions/cache/save@v3
with:
path: ${{ env.ONEAPI_ROOT }}
key: ${{ runner.os }}-${{ inputs.compiler }}-${{ inputs.version }}-${{ steps.get-date.outputs.date }}
key: ${{ steps.generate-cache-key.outputs.cache_key }}

- name: Activate oneAPI
if: runner.os == 'Windows' && contains(inputs.compiler, 'intel')
shell: cmd
Expand Down
Loading