-
Notifications
You must be signed in to change notification settings - Fork 5
128 lines (128 loc) · 4.06 KB
/
pack-rpm.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
---
name: Create RPM package
on:
workflow_dispatch:
pull_request:
paths: ['**CMakeLists.txt', '**.cmake']
jobs:
build-rpm-package:
runs-on: ubuntu-latest
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
os: [rocky8, rocky9]
container:
image: ghcr.io/khiopsml/khiops/khiopsdev-${{ matrix.os }}:latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: set environment variables
run: |
source /etc/os-release
echo "ID=$ID" >> "$GITHUB_ENV"
VERSION_CODENAME=$(echo $PLATFORM_ID | cut -d":" -f2)
echo "VERSION_CODENAME=$VERSION_CODENAME" >> "$GITHUB_ENV"
- name: Configure CMake
run: |
source /etc/profile.d/modules.sh
module load mpi/mpich-x86_64
echo "MPI_SUFFIX=$MPI_SUFFIX" >> "$GITHUB_ENV"
cmake --preset linux-gcc-release -DBUILD_JARS=ON
- name: Build Khiops binaries
run: |
cmake --build --preset linux-gcc-release --parallel \
--target MODL${{ env.MPI_SUFFIX }} MODL_Coclustering${{ env.MPI_SUFFIX }} \
KhiopsNativeInterface norm_jar khiops_jar
- name: Build package with CPack
run: cd build/linux-gcc-release && cpack -G RPM
- name: Rename packages with codename
run: |
source /etc/os-release
ARCH=$(arch)
cd build/linux-gcc-release/packages
for filename in *.rpm
do
mv -v $filename ${filename%.${ARCH}*}.${{ env.VERSION_CODENAME }}.${ARCH}.rpm
done
- name: Upload the packages as artifacts
uses: actions/[email protected]
with:
name: ${{ env.ID }}-${{ env.VERSION_CODENAME }}
path: build/linux-gcc-release/packages/*.rpm
if-no-files-found: error
# Test packages on a brand new runner to check:
# - the installation process (including dependencies installation)
# - that executable works (run with -v)
# - that it executes a small test
test-rpm-package:
needs: build-rpm-package
runs-on: ubuntu-latest
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
rocky_version: [8, 9]
container:
image: rockylinux:${{ matrix.rocky_version }}
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Set environment variables
run: |
source /etc/os-release
echo "ID=$ID" >> "$GITHUB_ENV"
VERSION=$(echo $PLATFORM_ID | cut -d":" -f2)
echo "VERSION=$VERSION" >> "$GITHUB_ENV"
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ID }}-${{ env.VERSION }}
path: artifacts
- run: yum update -y
- name: Install Khiops core
run: |
yum install -y ./artifacts/khiops-core*
- name: Install Khiops Desktop (with java)
run: |
yum install -y ./artifacts/khiops-*
- name: Test Khiops installation
uses: ./.github/actions/test-khiops-install
test-kni-rpm:
needs: build-rpm-package
runs-on: ubuntu-latest
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
os: [rocky8, rocky9]
container:
image: ghcr.io/khiopsml/khiops/khiopsdev-${{ matrix.os }}:latest
steps:
- name: Put OS info on the environment
run: |
source /etc/os-release
echo "ID=$ID" >> "$GITHUB_ENV"
VERSION=$(echo $PLATFORM_ID | cut -d":" -f2)
echo "VERSION=$VERSION" >> "$GITHUB_ENV"
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: ${{ env.ID }}-${{ env.VERSION }}
path: artifacts
- name: Install KNI package
run: |
yum update -y
yum install -y ./artifacts/kni*
- name: Checkout sources
uses: actions/checkout@v3
with:
sparse-checkout: .github
- name: Test KNI package installation
uses: ./.github/actions/test-kni