Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
PhoenixHPCProxy
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Admin message
Gitlab has been updated. More info
here
.
Show more breadcrumbs
CTA-LAPP
PHOENIX_LIBS
PhoenixHPCProxy
Commits
dbe04e72
Commit
dbe04e72
authored
2 years ago
by
Pierre Aubert
Browse files
Options
Downloads
Patches
Plain Diff
Add scripts to make automatic release within CI
parent
15e701ac
No related branches found
Branches containing commit
Tags
v1.8.4
Tags containing commit
No related merge requests found
Pipeline
#193894
passed
2 years ago
Stage: BuildTestinstall
Stage: DocCoverage
Stage: deploy
Changes
3
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
.gitlab-ci.yml
+151
-89
151 additions, 89 deletions
.gitlab-ci.yml
cmake/createReleaseCurl.py
+135
-0
135 additions, 0 deletions
cmake/createReleaseCurl.py
cmake/phoenix_createPackages.sh
+110
-0
110 additions, 0 deletions
cmake/phoenix_createPackages.sh
with
396 additions
and
89 deletions
.gitlab-ci.yml
+
151
−
89
View file @
dbe04e72
image
:
gitlab-registry.in2p3.fr/cta-lapp/phoenix_libs/phoenix/phoenix_minimal:0.2
stages
:
-
BuildTestinstall
...
...
@@ -6,103 +5,166 @@ stages:
-
deploy
dailyBuildMasterAll
:
#cache:
#untracked: true
#paths:
#- build/
stage
:
BuildTestinstall
script
:
-
export LD_LIBRARY_PATH=/usr/lib
-
env
-
mkdir -p build
-
cd build
-
>
cmake ..
-DCMAKE_INSTALL_PREFIX=/usr
-DSELF_TESTS_MODE=yes
-
make all
-
make install
-
make test
only
:
-
branches
-
tags
tags
:
#cache:
#untracked: true
#paths:
#- build/
image
:
gitlab-registry.in2p3.fr/cta-lapp/phoenix_libs/phoenix/phoenix_minimal:0.2
stage
:
BuildTestinstall
script
:
-
export LD_LIBRARY_PATH=/usr/lib
-
env
-
mkdir -p build
-
cd build
-
>
cmake ..
-DCMAKE_INSTALL_PREFIX=/usr
-DSELF_TESTS_MODE=yes
-
make all
-
make install
-
make test
only
:
-
branches
-
tags
tags
:
TestCoverage
:
stage
:
DocCoverage
script
:
-
export LD_LIBRARY_PATH=/usr/lib
-
env
-
mkdir -p build coverage
-
cd build
-
>
cmake ..
-DCMAKE_INSTALL_PREFIX=/usr
-DSELF_TESTS_MODE=yes
-DCMAKE_BUILD_TYPE=Coverage
-
make all
-
make install
-
make test
-
make run_all
-
make ExperimentalCoverage
-
cd ../coverage
-
gcovr -r ../ --exclude-throw-branches --html cov_report.html --html-details
-
gcovr -r ../ --exclude-throw-branches --xml Coverage.xml
-
gcovr -r ../ --exclude-throw-branches
artifacts
:
paths
:
-
coverage
expire_in
:
8d
only
:
-
branches
-
tags
tags
:
image
:
gitlab-registry.in2p3.fr/cta-lapp/phoenix_libs/phoenix/phoenix_minimal:0.2
stage
:
DocCoverage
script
:
-
export LD_LIBRARY_PATH=/usr/lib
-
env
-
mkdir -p build coverage
-
cd build
-
>
cmake ..
-DCMAKE_INSTALL_PREFIX=/usr
-DSELF_TESTS_MODE=yes
-DCMAKE_BUILD_TYPE=Coverage
-
make all
-
make install
-
make test
-
make run_all
-
make ExperimentalCoverage
-
cd ../coverage
-
gcovr -r ../ --exclude-throw-branches --html cov_report.html --html-details
-
gcovr -r ../ --exclude-throw-branches --xml Coverage.xml
-
gcovr -r ../ --exclude-throw-branches
artifacts
:
paths
:
-
coverage
expire_in
:
8d
only
:
-
branches
-
tags
tags
:
Doc
:
stage
:
DocCoverage
script
:
-
export LD_LIBRARY_PATH=/usr/lib
-
export GIT_SSL_NO_VERIFY=1
-
env
-
git clone https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS/PhoenixTex2Html.git
-
cd PhoenixTex2Html
-
./install.sh /usr
-
cd ..
-
rm -fr PhoenixTex2Html
-
rm -fr build public
-
mkdir -p build
-
mkdir -p public/html
-
cd build
-
>
cmake ..
-DCMAKE_INSTALL_PREFIX=/usr
-DDOC_MODE=yes
-
make all
-
make doc
-
scp -r doc/platex/* ../public
-
scp -r doc/html/* ../public/html
#- scp -r doc/html/* ../public
artifacts
:
paths
:
-
public
expire_in
:
8d
only
:
-
branches
-
tags
tags
:
image
:
gitlab-registry.in2p3.fr/cta-lapp/phoenix_libs/phoenix/phoenix_minimal:0.2
stage
:
DocCoverage
script
:
-
export LD_LIBRARY_PATH=/usr/lib
-
export GIT_SSL_NO_VERIFY=1
-
env
-
git clone https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS/PhoenixTex2Html.git
-
cd PhoenixTex2Html
-
./install.sh /usr
-
cd ..
-
rm -fr PhoenixTex2Html
-
rm -fr build public
-
mkdir -p build
-
mkdir -p public/html
-
cd build
-
>
cmake ..
-DCMAKE_INSTALL_PREFIX=/usr
-DDOC_MODE=yes
-
make all
-
make doc
-
scp -r doc/platex/* ../public
-
scp -r doc/html/* ../public/html
#- scp -r doc/html/* ../public
artifacts
:
paths
:
-
public
expire_in
:
8d
only
:
-
branches
-
tags
tags
:
pages
:
stage
:
deploy
script
:
-
mv coverage public/
artifacts
:
paths
:
-
public
expire_in
:
8d
stage
:
deploy
script
:
-
mv coverage public/
artifacts
:
paths
:
-
public
expire_in
:
8d
Ubuntu 2004
:
image
:
gitlab-registry.in2p3.fr/cta-lapp/phoenix_libs/phoenixdocker/package_ubuntu2004_gcc9:0.1
stage
:
DocCoverage
script
:
-
./cmake/phoenix_createPackages.sh DEB package_ubuntu2004
false
artifacts
:
paths
:
-
package_ubuntu2004
expire_in
:
8d
only
:
#- branches
-
tags
Ubuntu 2204
:
image
:
gitlab-registry.in2p3.fr/cta-lapp/phoenix_libs/phoenixdocker/package_ubuntu2204_gcc11:0.1
stage
:
DocCoverage
script
:
-
./cmake/phoenix_createPackages.sh DEB package_ubuntu2204
false
artifacts
:
paths
:
-
package_ubuntu2204
expire_in
:
8d
only
:
#- branches
-
tags
Fedora 31
:
image
:
gitlab-registry.in2p3.fr/cta-lapp/phoenix_libs/phoenixdocker/package_fedora31:0.1
stage
:
DocCoverage
script
:
-
./cmake/phoenix_createPackages.sh RPM package_fedora31
false
artifacts
:
paths
:
-
package_fedora31
expire_in
:
8d
only
:
#- branches
-
tags
Fedora 36
:
image
:
gitlab-registry.in2p3.fr/cta-lapp/phoenix_libs/phoenixdocker/package_fedora36:0.1
stage
:
DocCoverage
script
:
-
./cmake/phoenix_createPackages.sh RPM package_fedora36
false
artifacts
:
paths
:
-
package_fedora36
expire_in
:
8d
only
:
#- branches
-
tags
Release
:
image
:
gitlab-registry.in2p3.fr/cta-lapp/phoenix_libs/phoenixdocker/package_ubuntu2204_python3:0.1
stage
:
deploy
script
:
-
echo "Let's do some release"
-
uname -a
-
python3 ./cmake/createReleaseCurl.py -n ${CI_PROJECT_TITLE} -i ${CI_PROJECT_ID} -t ${CI_COMMIT_TAG} -p ${CI_RELEASE_TOKEN}
only
:
#- branches
-
tags
This diff is collapsed.
Click to expand it.
cmake/createReleaseCurl.py
0 → 100644
+
135
−
0
View file @
dbe04e72
#!/usr/bin/env python
# coding: utf-8
import
sys
import
os
import
subprocess
import
json
import
glob
import
argparse
server
=
"
gitlab.in2p3.fr
"
apiProject
=
"
/api/v4/projects/
"
def
getListArchiveFile
(
inputDirectory
,
projectName
):
'''
Get the list of the archives file for a given project name
Parameters:
inputDirectory : directory (for one OS) where all the binary packages are created
projectName : name of the project
Return:
list of corresponding binary packages
'''
listPackage
=
glob
.
glob
(
inputDirectory
+
"
/*/
"
+
projectName
+
"
-*
"
)
print
(
listPackage
)
return
listPackage
#curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "file=@dk.png" "https://gitlab.example.com/api/v4/projects/5/uploads"
def
uploadFileCommand
(
projectIdOwn
,
fileName
,
token
):
'''
Upload a file in the given gitlab project
Parameters:
projectIdOwn : id of the project
fileName : name of the file to be uploaded
token : token to be used to create the release
Return:
url of the uploaded file
'''
print
(
"
Upload file
"
,
fileName
)
URL
=
'"
https://
'
+
server
+
apiProject
+
str
(
projectIdOwn
)
+
'
/uploads
"'
privateToken
=
'
--header
"
PRIVATE-TOKEN:
'
+
token
+
'"
'
fileCmd
=
'
--form
"
file=@
'
+
fileName
+
'"
'
command
=
"
curl --insecure --request POST
"
+
privateToken
+
fileCmd
+
URL
#print("Updload file command :", command)
output
=
subprocess
.
getoutput
(
command
)
print
(
"
Upload file output :
"
,
output
)
outputDico
=
json
.
loads
(
'
{
'
+
output
.
split
(
"
{
"
)[
1
])
outputFile
=
outputDico
[
"
full_path
"
]
outputUrl
=
outputDico
[
"
full_path
"
]
print
(
"
Upload file output file
"
,
outputFile
,
"
, url :
"
,
outputUrl
)
return
outputFile
,
outputUrl
#{ "name": "hoge", "url": "https://google.com", "filepath": "/binaries/linux-amd64", "link_type":"other" }
def
getListArchiveLinks
(
projectIdOwn
,
listPackage
,
useComma
,
token
):
'''
Create the list of link to the archive uploaded binary packages
Parameters:
projectIdOwn : id of the project to be used
listPackage : list of the binary packages to be uploaded and linked
useComma : True to add a comma in the first place, false otherwise
token : token to be used to create the release
Return:
string of the list of archive links corresponding to the given list of packages
'''
linksData
=
""
for
packageName
in
listPackage
:
if
useComma
:
linksData
+=
"
,
"
baseName
=
os
.
path
.
basename
(
packageName
)
packageOsName
=
packageName
.
split
(
'
/
'
)[
-
2
]
nameData
=
"
\"
name
\"
:
\"
"
+
packageOsName
+
"
"
+
baseName
+
"
\"
"
uploadedFullPath
,
outputUrl
=
uploadFileCommand
(
projectIdOwn
,
packageName
,
token
)
print
(
"
outputUrl =
"
,
outputUrl
)
fullPathToFile
=
'
https://
'
+
server
+
"
/
"
+
uploadedFullPath
#filePathData = '"filepath": "'+fullPathToFile+'"'
linkType
=
'"
link_type
"
:
"
other
"
'
urlData
=
'"
url
"
:
"'
+
fullPathToFile
+
'"'
addDataLink
=
'
{
'
+
nameData
+
"
,
"
+
urlData
+
"
,
"
+
linkType
+
'
}
'
print
(
"
addDataLink =
"
,
addDataLink
)
linksData
+=
addDataLink
useComma
=
True
return
linksData
def
createReleaseCurlCommand
(
projectIdOwn
,
projectName
,
projectTagName
,
basePackageDir
,
token
):
'''
Create a release of the given project
Parameters:
projectIdOwn : id of the project on gitlab
projectName : name of the project
projectTagName : tag name of the project
basePackageDir : base directory wher eto find binary packages
token : token to be used to create the release
'''
postURL
=
"
--request POST https://
"
+
server
+
apiProject
+
str
(
projectIdOwn
)
+
"
/releases
"
header
=
"
--header
'
Content-Type: application/json
'
"
privateToken
=
'
--header
"
PRIVATE-TOKEN:
'
+
token
+
'"
'
versionName
=
"
version
"
+
projectTagName
dataStr
=
"
--data
'
{
\"
name
\"
:
\"
Release
"
+
versionName
+
"
\"
,
"
+
"
\"
tag_name
\"
:
\"
"
+
projectTagName
+
"
\"
,
"
dataStr
+=
"
\"
description
\"
:
\"
Automatic release,
"
+
versionName
+
"
\"
"
useComma
=
False
linksData
=
"
,
\"
assets
\"
: {
\"
links
\"
: [
"
listArchiveFile
=
getListArchiveFile
(
basePackageDir
+
"
/
"
,
projectName
)
linksData
+=
getListArchiveLinks
(
projectIdOwn
,
listArchiveFile
,
useComma
,
token
)
linksData
+=
"
] }
"
dataStr
+=
linksData
dataStr
+=
"
}
'
"
command
=
"
curl --insecure
"
+
header
+
privateToken
+
dataStr
+
postURL
print
(
"
Create Release command :
"
,
command
)
output
=
subprocess
.
getoutput
(
command
)
print
(
"
Release Output :
"
,
output
)
if
__name__
==
"
__main__
"
:
parser
=
argparse
.
ArgumentParser
(
description
=
"
Program which creates release with given tag
"
)
parser
.
add_argument
(
'
-n
'
,
'
--projectname
'
,
help
=
"
Name of the current projet
"
,
required
=
True
,
type
=
str
)
parser
.
add_argument
(
'
-i
'
,
'
--projectid
'
,
help
=
"
Id of the current projet
"
,
required
=
True
,
type
=
int
)
parser
.
add_argument
(
'
-t
'
,
'
--tag
'
,
help
=
"
Tag to be used to create the current release
"
,
required
=
True
,
type
=
str
)
parser
.
add_argument
(
'
-p
'
,
'
--token
'
,
help
=
"
Token to be used to create the release
"
,
required
=
True
,
type
=
str
)
parser
.
add_argument
(
'
-d
'
,
'
--packagedirectory
'
,
help
=
"
Directory where to find packages
"
,
required
=
False
,
type
=
str
,
default
=
"
./
"
)
args
=
parser
.
parse_args
()
createReleaseCurlCommand
(
args
.
projectid
,
args
.
projectname
,
args
.
tag
,
args
.
packagedirectory
,
args
.
token
)
This diff is collapsed.
Click to expand it.
cmake/phoenix_createPackages.sh
0 → 100755
+
110
−
0
View file @
dbe04e72
#!/bin/bash
PACKAGE_TYPE
=
"
$1
"
OUTPUT_LINUX_DIR
=
"
$2
"
USE_VECTORISATION
=
"
$3
"
DIR_SOFT_NAME
=
`
basename
${
PWD
}
`
rm
-fr
${
OUTPUT_LINUX_DIR
}
mkdir
-p
${
OUTPUT_LINUX_DIR
}
function
createBinaryArchive
(){
EXTENTION
=
"
$1
"
echo
"Create binary archive for extension '
${
EXTENTION
}
'"
if
[
!
-z
"
$1
"
]
then
cd
..
mv
$DIR_SOFT_NAME
$DIR_SOFT_NAME
-
${
EXTENTION
}
cd
$DIR_SOFT_NAME
-
${
EXTENTION
}
fi
if
[
-d
build
]
then
echo
"Remove existing directory build"
rm
-fr
build
fi
mkdir
-p
build
cd
build
if
[
-z
"
$1
"
]
then
cmake ..
-DSELF_TESTS_MODE
=
no
-DCMAKE_INSTALL_PREFIX
=
/usr
||
cmake3 ..
-DSELF_TESTS_MODE
=
no
-DCMAKE_INSTALL_PREFIX
=
/usr
else
cmake ..
-D
${
EXTENTION
}
=
yes
-DPROGRAM_EXTENSION
=
${
EXTENTION
}
-DSELF_TESTS_MODE
=
no
-DCMAKE_INSTALL_PREFIX
=
/usr
||
cmake3 ..
-D
${
EXTENTION
}
=
yes
-DPROGRAM_EXTENSION
=
${
EXTENTION
}
-DSELF_TESTS_MODE
=
no
-DCMAKE_INSTALL_PREFIX
=
/usr
fi
# make -j `nproc`
make
cpack
cd
..
if
[
!
-z
"
$1
"
]
then
cd
..
mv
$DIR_SOFT_NAME
-
${
EXTENTION
}
$DIR_SOFT_NAME
cd
$DIR_SOFT_NAME
fi
}
function
createPackage
(){
PACKAGE_TYPE
=
"
$1
"
EXTENTION
=
"
$2
"
echo
"Create Package '
${
PACKAGE_TYPE
}
' for extension '
${
EXTENTION
}
'"
if
[
!
-z
"
$1
"
]
then
cd
..
mv
$DIR_SOFT_NAME
$DIR_SOFT_NAME
-
${
EXTENTION
}
cd
$DIR_SOFT_NAME
-
${
EXTENTION
}
fi
if
[
-d
build
]
then
echo
"Remove existing directory build"
rm
-fr
build
fi
mkdir
-p
build
cd
build
# The -DCMAKE_INSTALL_PREFIX=/usr is needed because the install prefix of CPack is /usr
if
[
-z
"
$2
"
]
then
cmake ..
-DCREATE_
${
PACKAGE_TYPE
}
=
yes
-DSELF_TESTS_MODE
=
no
-DCMAKE_INSTALL_PREFIX
=
/usr
||
cmake3 ..
-DCREATE_
${
PACKAGE_TYPE
}
=
yes
-DSELF_TESTS_MODE
=
no
-DCMAKE_INSTALL_PREFIX
=
/usr
else
cmake ..
-D
${
EXTENTION
}
=
yes
-DPROGRAM_EXTENSION
=
${
EXTENTION
}
-DCREATE_
${
PACKAGE_TYPE
}
=
yes
-DSELF_TESTS_MODE
=
no
-DCMAKE_INSTALL_PREFIX
=
/usr
||
cmake3 ..
-D
${
EXTENTION
}
=
yes
-DPROGRAM_EXTENSION
=
${
EXTENTION
}
-DCREATE_
${
PACKAGE_TYPE
}
=
yes
-DSELF_TESTS_MODE
=
no
-DCMAKE_INSTALL_PREFIX
=
/usr
fi
# make -j `nproc`
make
cpack
cd
..
if
[
!
-z
"
$1
"
]
then
cd
..
mv
$DIR_SOFT_NAME
-
${
EXTENTION
}
$DIR_SOFT_NAME
cd
$DIR_SOFT_NAME
fi
}
echo
"Create package, activate extension '
${
USE_VECTORISATION
}
'"
if
[[
"
$USE_VECTORISATION
"
==
"true"
*
]]
then
echo
"Create packages for set of extension (AVX, AVX2, AVX512F, ...)"
for
extension
in
"AVX512_2"
"AVX512VPOPCNTDQ"
"AVX512BW"
"AVX512PF"
"AVX512ER"
"AVX512F"
"AVX2"
"AVX"
"SSE4.2"
"SSE4.1"
"SSSE3"
"SSE2"
"NOVECTORIZATION"
do
createPackage
${
PACKAGE_TYPE
}
${
extension
}
cp
build/
${
DIR_SOFT_NAME
}
-
*
"
${
OUTPUT_LINUX_DIR
}
"
createBinaryArchive
${
extension
}
cp
build/
${
DIR_SOFT_NAME
}
-
*
"
${
OUTPUT_LINUX_DIR
}
"
done
else
echo
"Create packages for generic extension"
createPackage
${
PACKAGE_TYPE
}
cp
build/
${
DIR_SOFT_NAME
}
-
*
"
${
OUTPUT_LINUX_DIR
}
"
createBinaryArchive
cp
build/
${
DIR_SOFT_NAME
}
-
*
"
${
OUTPUT_LINUX_DIR
}
"
fi
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment