-
Notifications
You must be signed in to change notification settings - Fork 14
156 lines (124 loc) · 4.1 KB
/
actions.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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
name: TREXIO CI
on:
push:
branches:
- master
tags:
# After vMajor.Minor.Patch _anything_ is allowed (without "/") !
- v[0-9]+.[0-9]+.[0-9]+*
pull_request:
branches: [ master ]
jobs:
get_commit_message:
name: Get commit message
runs-on: ubuntu-20.04
outputs:
message: ${{ steps.commit_message.outputs.message }}
steps:
- name: Checkout the repo
uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791
# Gets the correct commit message for pull request
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Get commit message
id: commit_message
run: |
set -xe
COMMIT_MSG=$(git log --no-merges -1 --oneline)
echo "::set-output name=message::$COMMIT_MSG"
trexio_ubuntu:
name: x86 Ubuntu 20.04
runs-on: ubuntu-20.04
needs: get_commit_message
steps:
- uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791
- name: install dependencies
run: |
sudo add-apt-repository ppa:kelleyk/emacs
sudo apt-get install libhdf5-dev emacs26
- name: configure with autotools
run: |
./autogen.sh
./configure --enable-silent-rules
- name: compile TREXIO
run: make -j2
- name: check TREXIO
run: make -j2 check
- name: Archive test log file
if: failure()
uses: actions/upload-artifact@82c141cc518b40d92cc801eee768e7aafc9c2fa2
with:
name: test-report-ubuntu
path: test-suite.log
- name: create virtual environment
run: |
python3 -m venv --clear pytrexio-venv
source pytrexio-venv/bin/activate
- name: install Python API
run: make python-install
- name: check Python API
run: make python-test
- name: build and move Python API distribution
run: |
make python-sdist
cp python/dist/trexio-*.tar.gz .
- name: publish Python API distribution as an artifact
if: >-
contains(needs.get_commit_message.outputs.message, '[wheel build]') ||
github.event_name == 'release'
uses: actions/upload-artifact@82c141cc518b40d92cc801eee768e7aafc9c2fa2
with:
name: pytrexio-source
path: ./trexio-*.tar.gz
- name: maintainer clean
run: make maintainer-clean
- name: reconfigure with clang and AddressSanitizer
run: |
./autogen.sh
./configure CC=clang-11 CFLAGS="-O2 -fsanitize=address -fno-omit-frame-pointer" LDFLAGS="-fsanitize=address" --enable-silent-rules
- name: recompile TREXIO
run: make -j2
- name: recheck TREXIO for memory leaks
run: make -j2 check
- name: Archive test log file
if: failure()
uses: actions/upload-artifact@82c141cc518b40d92cc801eee768e7aafc9c2fa2
with:
name: test-report-ubuntu-2
path: test-suite.log
- name: maintainer clean
run: make maintainer-clean
trexio_macos:
name: x86 MacOS 12
runs-on: macos-12
steps:
- uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791
- name: install dependencies
run: |
brew install emacs
brew install hdf5
brew install automake
brew --prefix hdf5
- name: configure with autotools
run: |
./autogen.sh
./configure FC=gfortran-12 --enable-silent-rules
- name: compile TREXIO
run: make -j3
- name: check TREXIO
run: make -j3 check
- name: compile Python API
run: |
export H5_CFLAGS="-I$(brew --prefix hdf5)/include"
export H5_LDFLAGS="-L$(brew --prefix hdf5)/lib"
make python-install
- name: test Python API
run: make python-test
- name: Archive test log file
if: failure()
uses: actions/upload-artifact@82c141cc518b40d92cc801eee768e7aafc9c2fa2
with:
name: test-report-macos
path: test-suite.log
- name: clean
run: make clean