Skip to content

Commit 8f466f6

Browse files
authored
Added DNF install example, added link to list_components in README, minor fixes (#34)
* Added DNF install example, added link to list_components in README * Added missing scripts * Setting daily schedule for list_components * corrected exit code in install scripts * Added linux installer examples, other improvements
1 parent af8b1e6 commit 8f466f6

14 files changed

+364
-18
lines changed

.github/workflows/build_all.yml

Lines changed: 200 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,23 @@
44

55
name: build_all
66

7-
on:
8-
push
7+
on: push
98

109
env:
1110
WINDOWS_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17453/w_BaseKit_p_2021.1.0.2664_offline.exe
1211
WINDOWS_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17392/w_HPCKit_p_2021.1.0.2682_offline.exe
12+
LINUX_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17431/l_BaseKit_p_2021.1.0.2659_offline.sh
13+
LINUX_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17427/l_HPCKit_p_2021.1.0.2684_offline.sh
1314
MACOS_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17398/m_HPCKit_p_2021.1.0.2681_offline.dmg
1415
WINDOWS_CPP_COMPONENTS: intel.oneapi.win.cpp-compiler
1516
WINDOWS_FORTRAN_COMPONENTS: intel.oneapi.win.ifort-compiler
1617
WINDOWS_DPCPP_COMPONENTS: intel.oneapi.win.dpcpp-compiler
1718
LINUX_CPP_COMPONENTS: intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
1819
LINUX_FORTRAN_COMPONENTS: intel-oneapi-compiler-fortran
1920
LINUX_DPCPP_COMPONENTS: intel-oneapi-compiler-dpcpp-cpp
21+
LINUX_CPP_COMPONENTS_WEB: intel.oneapi.lin.dpcpp-cpp-compiler-pro
22+
LINUX_FORTRAN_COMPONENTS_WEB: intel.oneapi.lin.ifort-compiler
23+
LINUX_DPCPP_COMPONENTS_WEB: intel.oneapi.lin.dpcpp-cpp-compiler
2024
MACOS_CPP_COMPONENTS: intel.oneapi.mac.cpp-compiler
2125
MACOS_FORTRAN_COMPONENTS: intel.oneapi.mac.ifort-compiler
2226
ONEAPI_RELEASE: 2021.1.1
@@ -130,6 +134,109 @@ jobs:
130134
installer*
131135
retention-days: 7
132136

137+
build_linux_cpp:
138+
runs-on: ubuntu-20.04
139+
defaults:
140+
run:
141+
shell: bash
142+
steps:
143+
- uses: actions/checkout@v2
144+
- name: cache install
145+
id: cache-install
146+
uses: actions/cache@v2
147+
with:
148+
path: |
149+
/opt/intel/oneapi/compiler
150+
key: install-${{ env.LINUX_HPCKIT_URL }}-${{ env.LINUX_CPP_COMPONENTS_WEB }}-compiler-${{ hashFiles('**/scripts/cache_exclude_linux.sh') }}
151+
- name: install
152+
if: steps.cache-install.outputs.cache-hit != 'true'
153+
run: scripts/install_linux.sh $LINUX_HPCKIT_URL $LINUX_CPP_COMPONENTS_WEB
154+
- name: build
155+
run: scripts/build_linux.sh c++ $ONEAPI_RELEASE
156+
- name: exclude unused files from cache
157+
if: steps.cache-install.outputs.cache-hit != 'true'
158+
run: scripts/cache_exclude_linux.sh $ONEAPI_RELEASE
159+
160+
# Delete the following if you don't want to save install logs
161+
- name: Saving install logs
162+
if: ${{ always() }}
163+
uses: actions/upload-artifact@v2
164+
with:
165+
name: InstallLogs_${{ github.job }}
166+
path: |
167+
bootstrapper*
168+
installer*
169+
retention-days: 7
170+
171+
build_linux_fortran:
172+
runs-on: ubuntu-20.04
173+
defaults:
174+
run:
175+
shell: bash
176+
steps:
177+
- uses: actions/checkout@v2
178+
- name: cache install
179+
id: cache-install
180+
uses: actions/cache@v2
181+
with:
182+
path: |
183+
/opt/intel/oneapi/compiler
184+
key: install-${{ env.LINUX_HPCKIT_URL }}-${{ env.LINUX_FORTRAN_COMPONENTS_WEB }}-compiler-${{ hashFiles('**/scripts/cache_exclude_linux.sh') }}
185+
- name: install
186+
if: steps.cache-install.outputs.cache-hit != 'true'
187+
run: scripts/install_linux.sh $LINUX_HPCKIT_URL $LINUX_FORTRAN_COMPONENTS_WEB
188+
- name: build
189+
run: scripts/build_linux.sh fortran $ONEAPI_RELEASE
190+
- name: exclude unused files from cache
191+
if: steps.cache-install.outputs.cache-hit != 'true'
192+
run: scripts/cache_exclude_linux.sh $ONEAPI_RELEASE
193+
194+
# Delete the following if you don't want to save install logs
195+
- name: Saving install logs
196+
if: ${{ always() }}
197+
uses: actions/upload-artifact@v2
198+
with:
199+
name: InstallLogs_${{ github.job }}
200+
path: |
201+
bootstrapper*
202+
installer*
203+
retention-days: 7
204+
205+
build_linux_dpcpp:
206+
runs-on: ubuntu-20.04
207+
defaults:
208+
run:
209+
shell: bash
210+
steps:
211+
- uses: actions/checkout@v2
212+
- name: cache install
213+
id: cache-install
214+
uses: actions/cache@v2
215+
with:
216+
path: |
217+
/opt/intel/oneapi/compiler
218+
/opt/intel/oneapi/tbb
219+
key: install-${{ env.LINUX_BASEKIT_URL }}-${{ env.LINUX_DPCPP_COMPONENTS_WEB }}-compiler-tbb-${{ hashFiles('**/scripts/cache_exclude_linux.sh') }}
220+
- name: install
221+
if: steps.cache-install.outputs.cache-hit != 'true'
222+
run: scripts/install_linux.sh $LINUX_BASEKIT_URL $LINUX_DPCPP_COMPONENTS_WEB
223+
- name: build
224+
run: scripts/build_linux.sh dpc++ $ONEAPI_RELEASE
225+
- name: exclude unused files from cache
226+
if: steps.cache-install.outputs.cache-hit != 'true'
227+
run: scripts/cache_exclude_linux.sh $ONEAPI_RELEASE
228+
229+
# Delete the following if you don't want to save install logs
230+
- name: Saving install logs
231+
if: ${{ always() }}
232+
uses: actions/upload-artifact@v2
233+
with:
234+
name: InstallLogs_${{ github.job }}
235+
path: |
236+
bootstrapper*
237+
installer*
238+
retention-days: 7
239+
133240
build_linux_apt_cpp:
134241
runs-on: ubuntu-20.04
135242
defaults:
@@ -212,6 +319,97 @@ jobs:
212319
if: steps.cache-install.outputs.cache-hit != 'true'
213320
run: scripts/cache_exclude_linux.sh $ONEAPI_RELEASE
214321

322+
build_linux_dnf_cpp:
323+
runs-on: ubuntu-20.04
324+
container: fedora
325+
defaults:
326+
run:
327+
shell: bash
328+
steps:
329+
- uses: actions/checkout@v2
330+
- name: install prerequisites
331+
run: scripts/install_prerequisites_linux_dnf.sh
332+
- name: setup yum/dnf repo
333+
run: scripts/setup_yum_dnf_repo_linux.sh
334+
- name: collect versioned dependencies of dnf packages
335+
run: scripts/dnf_depends.sh $LINUX_CPP_COMPONENTS | tee depends.txt
336+
- name: cache install
337+
id: cache-install
338+
uses: actions/cache@v2
339+
with:
340+
path: |
341+
/opt/intel/oneapi/compiler
342+
key: install-${{ env.LINUX_CPP_COMPONENTS }}-${{ hashFiles('**/depends.txt') }}-compiler-${{ hashFiles('**/scripts/cache_exclude_linux.sh') }}
343+
- name: install
344+
if: steps.cache-install.outputs.cache-hit != 'true'
345+
run: scripts/install_linux_dnf.sh $LINUX_CPP_COMPONENTS
346+
- name: build
347+
run: scripts/build_linux.sh c++ $ONEAPI_RELEASE
348+
- name: exclude unused files from cache
349+
if: steps.cache-install.outputs.cache-hit != 'true'
350+
run: scripts/cache_exclude_linux.sh $ONEAPI_RELEASE
351+
352+
build_linux_dnf_fortran:
353+
runs-on: ubuntu-20.04
354+
container: fedora
355+
defaults:
356+
run:
357+
shell: bash
358+
steps:
359+
- uses: actions/checkout@v2
360+
- name: install prerequisites
361+
run: scripts/install_prerequisites_linux_dnf.sh
362+
- name: setup yum/dnf repo
363+
run: scripts/setup_yum_dnf_repo_linux.sh
364+
- name: collect versioned dependencies of dnf packages
365+
run: scripts/dnf_depends.sh $LINUX_FORTRAN_COMPONENTS | tee depends.txt
366+
- name: cache install
367+
id: cache-install
368+
uses: actions/cache@v2
369+
with:
370+
path: |
371+
/opt/intel/oneapi/compiler
372+
key: install-${{ env.LINUX_FORTRAN_COMPONENTS }}-${{ hashFiles('**/depends.txt') }}-compiler-${{ hashFiles('**/scripts/cache_exclude_linux.sh') }}
373+
- name: install
374+
if: steps.cache-install.outputs.cache-hit != 'true'
375+
run: scripts/install_linux_dnf.sh $LINUX_FORTRAN_COMPONENTS
376+
- name: build
377+
run: scripts/build_linux.sh fortran $ONEAPI_RELEASE
378+
- name: exclude unused files from cache
379+
if: steps.cache-install.outputs.cache-hit != 'true'
380+
run: scripts/cache_exclude_linux.sh $ONEAPI_RELEASE
381+
382+
build_linux_dnf_dpcpp:
383+
runs-on: ubuntu-20.04
384+
container: fedora
385+
defaults:
386+
run:
387+
shell: bash
388+
steps:
389+
- uses: actions/checkout@v2
390+
- name: install prerequisites
391+
run: scripts/install_prerequisites_linux_dnf.sh
392+
- name: setup yum/dnf repo
393+
run: scripts/setup_yum_dnf_repo_linux.sh
394+
- name: collect versioned dependencies of dnf packages
395+
run: scripts/dnf_depends.sh $LINUX_DPCPP_COMPONENTS | tee depends.txt
396+
- name: cache install
397+
id: cache-install
398+
uses: actions/cache@v2
399+
with:
400+
path: |
401+
/opt/intel/oneapi/compiler
402+
/opt/intel/oneapi/tbb
403+
key: install-${{ env.LINUX_DPCPP_COMPONENTS }}-${{ hashFiles('**/depends.txt') }}-compiler-tbb-${{ hashFiles('**/scripts/cache_exclude_linux.sh') }}
404+
- name: install
405+
if: steps.cache-install.outputs.cache-hit != 'true'
406+
run: scripts/install_linux_dnf.sh $LINUX_DPCPP_COMPONENTS
407+
- name: build
408+
run: scripts/build_linux.sh dpc++ $ONEAPI_RELEASE
409+
- name: exclude unused files from cache
410+
if: steps.cache-install.outputs.cache-hit != 'true'
411+
run: scripts/cache_exclude_linux.sh $ONEAPI_RELEASE
412+
215413
build_linux_container_cpp:
216414
runs-on: ubuntu-20.04
217415
container: intel/oneapi-hpckit

.github/workflows/list_components.yml

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,21 @@
44

55
name: list_components
66

7-
on: workflow_dispatch
7+
on:
8+
schedule:
9+
- cron: '0 0 * * *'
810

911
env:
1012
WINDOWS_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17453/w_BaseKit_p_2021.1.0.2664.exe
1113
WINDOWS_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17392/w_HPCKit_p_2021.1.0.2682.exe
1214
WINDOWS_IOTKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17406/w_IoTKit_p_2021.1.0.1220.exe
1315
WINDOWS_RENDERKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17405/w_RenderKit_p_2021.1.0.626.exe
16+
LINUX_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17431/l_BaseKit_p_2021.1.0.2659.sh
17+
LINUX_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17427/l_HPCKit_p_2021.1.0.2684.sh
18+
LINUX_IOTKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17420/l_IoTKit_p_2021.1.0.2658.sh
19+
LINUX_AIKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17421/l_AIKit_p_2021.1.0.935.sh
20+
LINUX_DLFDKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17399/l_DLFDKit_p_2021.1.0.1920.sh
21+
LINUX_RENDERKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17448/l_RenderKit_p_2021.1.0.627.sh
1422
MACOS_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17426/m_BaseKit_p_2021.1.0.2427.dmg
1523
MACOS_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17398/m_HPCKit_p_2021.1.0.2681.dmg
1624
MACOS_RENDERKIT_URL: https://registrationcenter-download.intel.com/akdlm/irc_nas/17444/m_RenderKit_p_2021.1.0.626.dmg
@@ -33,6 +41,26 @@ jobs:
3341
run: scripts/list_components_windows.bat $WINDOWS_RENDERKIT_URL
3442

3543
linux:
44+
runs-on: ubuntu-latest
45+
defaults:
46+
run:
47+
shell: bash
48+
steps:
49+
- uses: actions/checkout@v2
50+
- name: Intel® oneAPI Base Toolkit
51+
run: scripts/list_components_linux.sh $LINUX_BASEKIT_URL
52+
- name: Intel® oneAPI HPC Toolkit
53+
run: scripts/list_components_linux.sh $LINUX_HPCKIT_URL
54+
- name: Intel® oneAPI IoT Toolkit
55+
run: scripts/list_components_linux.sh $LINUX_IOTKIT_URL
56+
- name: Intel® AI Analytics Toolkit
57+
run: scripts/list_components_linux.sh $LINUX_AIKIT_URL
58+
- name: Intel® oneAPI DL Framework Developer Toolkit
59+
run: scripts/list_components_linux.sh $LINUX_DLFDKIT_URL
60+
- name: Intel® oneAPI Rendering Toolkit
61+
run: scripts/list_components_linux.sh $LINUX_RENDERKIT_URL
62+
63+
linux_apt:
3664
runs-on: ubuntu-latest
3765
defaults:
3866
run:
@@ -44,6 +72,19 @@ jobs:
4472
- name: Intel® oneAPI packages provided in APT repository
4573
run: scripts/list_components_linux_apt.sh
4674

75+
linux_yum_dnf:
76+
runs-on: ubuntu-latest
77+
container: fedora
78+
defaults:
79+
run:
80+
shell: bash
81+
steps:
82+
- uses: actions/checkout@v2
83+
- name: setup yum/dnf repo
84+
run: scripts/setup_yum_dnf_repo_linux.sh
85+
- name: Intel® oneAPI packages provided in YUM/DNF repository
86+
run: scripts/list_components_linux_dnf.sh
87+
4788
macos:
4889
runs-on: macos-latest
4990
defaults:

README.rst

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@ applications:
1717
=============== ===========================================
1818
Compilers icc, ifort, dpcpp
1919
OS platforms Linux, Windows, MacOS
20-
Install methods Intel\ |r| installer, apt, docker container, CI cache
20+
Install methods Intel\ |r| installer, apt, dnf, docker container, CI cache
2121
=============== ===========================================
2222

2323
The config files show examples of all supported configurations. Delete
2424
the ones you do not want.
2525

26+
For a complete list of components available for installation,
27+
see |ListComponentsStatus|.
28+
2629
Status
2730
======
2831

@@ -40,17 +43,17 @@ Azure Pipelines `.azure-pipelines.yml`_ |AzureStatus|
4043
Supported Configurations
4144
========================
4245

43-
======== === ======= ===== === ======= ===== === ======= ===== === =======
44-
CI Linux APT Linux Docker Windows MacOS
45-
-------- ----------------- ----------------- ----------------- -----------
46-
\ C++ Fortran DPC++ C++ Fortran DPC++ C++ Fortran DPC++ C++ Fortran
47-
======== === ======= ===== === ======= ===== === ======= ===== === =======
48-
GitHub |c| |c| |c| |c| |c| |c| |c| |c| |c| |c| |c|
49-
Circle |c| |c| |c| |c| |c| |c| |c| |c| |c| |x| |x|
50-
AppVeyor |c| |c| |c| |x| |x| |x| |c| |c| |c| |c| |c|
51-
GitLab |c| |c| |c| |x| |x| |x| |c| |c| |c| |x| |x|
52-
Azure |c| |c| |c| |c| |c| |c| |c| |c| |c| |c| |c|
53-
======== === ======= ===== === ======= ===== === ======= ===== === =======
46+
======== ========= ========= ============ ===== ======= ===========
47+
\ C++/Fortran/DPC++ C++/Fortran
48+
-------- ---------------------------------------------- -----------
49+
CI Linux APT Linux DNF Linux Docker Linux Windows MacOS
50+
======== ========= ========= ============ ===== ======= ===========
51+
GitHub |c| |c| |c| |c| |c| |c|
52+
Circle |c| |x| |c| |x| |c| |x|
53+
AppVeyor |c| |x| |x| |x| |c| |c|
54+
GitLab |c| |x| |x| |x| |c| |x|
55+
Azure |c| |x| |c| |x| |c| |c|
56+
======== ========= ========= ============ ===== ======= ===========
5457

5558

5659
Troubleshooting
@@ -99,6 +102,9 @@ See `security guidelines`_.
99102
.. |AzureStatus| image:: https://dev.azure.com/robertscohn/oneapi-ci-mirror/_apis/build/status/oneapi-src.oneapi-ci?branchName=master
100103
:target: https://dev.azure.com/robertscohn/oneapi-ci-mirror/_build
101104
:alt: Build status
105+
.. |ListComponentsStatus| image:: https://github.com/oneapi-src/oneapi-ci/workflows/list_components/badge.svg
106+
:target: https://github.com/oneapi-src/oneapi-ci/actions?query=workflow%3Alist_components
107+
:alt: Build status
102108

103109
.. |r| unicode:: U+000AE
104110
.. |c| unicode:: U+2714

scripts/dnf_depends.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
3+
# SPDX-FileCopyrightText: 2020 Intel Corporation
4+
#
5+
# SPDX-License-Identifier: MIT
6+
7+
echo "$1" | sed "s/,/ /g" | xargs -n 1 dnf -y repoquery --deplist

scripts/install_linux.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/bash
2+
3+
# SPDX-FileCopyrightText: 2020 Intel Corporation
4+
#
5+
# SPDX-License-Identifier: MIT
6+
7+
URL=$1
8+
COMPONENTS=$2
9+
10+
curl --output webimage.sh --url "$URL" --retry 5 --retry-delay 5
11+
chmod +x webimage.sh
12+
./webimage.sh -x -f webimage_extracted --log extract.log
13+
rm -rf webimage.sh
14+
WEBIMAGE_NAME=$(ls -1 webimage_extracted/)
15+
if [ -z "$COMPONENTS" ]; then
16+
sudo webimage_extracted/"$WEBIMAGE_NAME"/bootstrapper -s --action install --eula=accept --continue-with-optional-error=yes --log-dir=.
17+
installer_exit_code=$?
18+
else
19+
sudo webimage_extracted/"$WEBIMAGE_NAME"/bootstrapper -s --action install --components="$COMPONENTS" --eula=accept --continue-with-optional-error=yes --log-dir=.
20+
installer_exit_code=$?
21+
fi
22+
rm -rf webimage_extracted
23+
exit $installer_exit_code

scripts/install_linux_apt.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@
55
# SPDX-License-Identifier: MIT
66

77
COMPONENTS=$(echo "$1" | sed "s/,/ /g")
8-
sudo apt-get install -y "$COMPONENTS"
8+
#shellcheck disable=SC2086
9+
sudo apt-get install -y $COMPONENTS

0 commit comments

Comments
 (0)