Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
nghyd
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
Container Registry
Model registry
Operate
Environments
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
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Cassiopée
nghyd
Commits
ef3a3ee7
Commit
ef3a3ee7
authored
3 years ago
by
François Grand
Browse files
Options
Downloads
Patches
Plain Diff
refactor(ci): add deploy-version.sh helper script
refs
#505
parent
48b5b2a9
No related branches found
No related tags found
No related merge requests found
Pipeline
#139428
passed
3 years ago
Stage: jalhyd
Stage: install
Stage: build
Stage: releases-version
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
.gitlab-ci.yml
+5
-70
5 additions, 70 deletions
.gitlab-ci.yml
scripts/deploy-version.sh
+29
-0
29 additions, 0 deletions
scripts/deploy-version.sh
scripts/release-version.sh
+16
-4
16 additions, 4 deletions
scripts/release-version.sh
with
50 additions
and
74 deletions
.gitlab-ci.yml
+
5
−
70
View file @
ef3a3ee7
...
...
@@ -26,9 +26,12 @@ variables:
RELEASES_PATH
:
"
$PROD_PATH/cassiopee-releases"
before_script
:
# load private key from GitLab CI variable
,
to deploy on Aubes server
# load private key from GitLab CI variable to deploy on Aubes server
-
eval $(ssh-agent -s)
-
ssh-add <(echo "$AUBES_B64_AUTHORIZED_SSH_PRIVATE_KEY" | base64 -d)
# load private key from GitLab CI variable to deploy on OVH server
-
ssh-add <(echo "$OVH_B64_AUTHORIZED_SSH_PRIVATE_KEY" | base64 -d)
# disable console prompt for host checking
-
mkdir -p ~/.ssh
-
echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
...
...
@@ -38,11 +41,6 @@ cache:
jalhyd
:
stage
:
jalhyd
only
:
-
pushes
-
tags
-
schedules
-
web
script
:
-
JALHYD_BRANCH=`cat jalhyd_branch`
-
echo "CI_COMMIT_REF_NAME - $CI_COMMIT_REF_NAME"
...
...
@@ -59,31 +57,12 @@ jalhyd:
install
:
stage
:
install
only
:
-
pushes
-
tags
-
schedules
-
web
script
:
-
rm -rf node_modules
-
npm ci --force --unsafe-perm
test
:
stage
:
test
only
:
-
tags
-
schedules
-
web
script
:
-
npm run e2e
build
:
stage
:
build
only
:
-
pushes
-
tags
-
schedules
-
web
artifacts
:
expire_in
:
10 min
paths
:
...
...
@@ -91,53 +70,9 @@ build:
script
:
-
npm run build -- --base-href=/cassiopee/$CI_COMMIT_REF_NAME/
clean-stale-branches
:
stage
:
clean-stale-branches
only
:
-
pushes
-
tags
-
web
script
:
-
./scripts/remove-stale-branches.sh $DEV_LOGIN@$DEV_HOST $DEV_PATH
deploy-dev
:
stage
:
deploy-dev
only
:
-
pushes
-
tags
-
web
dependencies
:
-
build
script
:
# Copie de la branche / du tag
-
rsync --delete -a "dist/" "$DEV_LOGIN@$DEV_HOST:$DEV_PATH/$CI_COMMIT_REF_NAME"
deploy-prod
:
stage
:
deploy-prod
only
:
variables
:
-
$CI_COMMIT_REF_NAME == "stable"
dependencies
:
-
build
script
:
# Copie de la branche production
-
rsync --delete -a "dist/" "$PROD_LOGIN@$PROD_HOST:$PROD_PATH/"
# Modification du dossier base href
-
ssh $PROD_LOGIN@PROD_HOST "sed -i 's:/cassiopee/stable/:/:g' $PROD_PATH/index.html"
releases-nightly
:
stage
:
releases-nightly
only
:
-
schedules
dependencies
:
[]
script
:
-
./scripts/release-version.sh nightly $PROD_LOGIN $PROD_HOST $RELEASES_PATH
releases-version
:
stage
:
releases-version
only
:
variables
:
-
$CI_COMMIT_REF_NAME =~ /^[0-9]+\.[0-9]+\.[0-9]+$/
# version tag
dependencies
:
[]
script
:
-
echo CI_COMMIT_REF_NAME $CI_COMMIT_REF_NAME
-
./scripts/release-version.sh $CI_COMMIT_REF_NAME $PROD_LOGIN $PROD_HOST $RELEASES_PATH
This diff is collapsed.
Click to expand it.
scripts/deploy-version.sh
0 → 100755
+
29
−
0
View file @
ef3a3ee7
#!/bin/bash
# deploie l'appli sur le serveur $3 (user $2/mot de passe $5) dans le dossier $4 et met à jour le fichier index.html
# si la version est "stable"
if
((
$#
< 4
||
$#
>
5
))
;
then
echo
"usage:
$0
<version> <login> <server> <path> [<password>]"
exit
1
fi
VERSION
=
"
$1
"
LOGIN
=
"
$2
"
HOST
=
"
$3
"
DIR
=
"
$4
"
PASS
=
"
$5
"
echo
"
$(
basename
$0
)
: deploying version
$VERSION
in
$LOGIN
@
$HOST
:
$DIR
"
if
[[
$VERSION
==
"stable"
]]
;
then
# Copie de la branche production
rsync
-a
--delete
--exclude
=
cassiopee-releases
-e
"ssh -o StrictHostKeyChecking=no"
dist/
${
LOGIN
}
@
${
HOST
}
:
${
DIR
}
/
# Modification du dossier base href
echo
"updating index.html"
ssh
$LOGIN
@
$HOST
"sed -i 's:/cassiopee/stable/:/:g'
$DIR
/index.html"
else
# Copie de la branche / du tag
rsync
-a
--delete
--exclude
=
cassiopee-releases
-e
"ssh -o StrictHostKeyChecking=no"
"dist/"
"
$LOGIN
@
$HOST
:
$DIR
/
$VERSION
"
fi
This diff is collapsed.
Click to expand it.
scripts/release-version.sh
+
16
−
4
View file @
ef3a3ee7
#!/bin/bash
#!/bin/bash
-xv
# Fabrique les exécutables electron/cordova pour une version de Cassiopée $1, les
# distribue sur le serveur $2@$3 dans le dossier $4, et met à jour le fichier releases.json
# et les liens symboliques si la version n'est pas nightly
if
[
"$#"
-lt
4
]
;
then
echo
"args
$@
"
if
((
$#
< 4
))
;
then
echo
"usage:
$0
<X.Y.Z|nightly> <login> <server> <releases dir>"
exit
1
fi
...
...
@@ -24,7 +26,7 @@ if [[ $VERSION == "nightly" ]]; then
update_latest
=
0
fi
echo
"
deploy
-version.sh: building release for version
$VERSION
, deploying in
$HOST_LOGIN
:
$RELEASES_DIR
"
echo
"
release
-version.sh: building release for version
$VERSION
, deploying in
$HOST_LOGIN
:
$RELEASES_DIR
"
# build releases
npm run release-all
...
...
@@ -59,7 +61,17 @@ if (( $update_latest )); then
fi
# copy releases to public web directory
scp
"release/Cassiopée Setup
$VERSION
.exe"
"release/fr.irstea.cassiopee_
${
VERSION
}
_amd64.deb"
"release/cassiopee-
$VERSION
.apk"
"release/Cassiopée-
${
VERSION
}
-mac.zip"
"
$HOST_LOGIN
:
$RELEASES_DIR
/"
ssh
$HOST_LOGIN
mkdir
-p
$RELEASES_DIR
if
[[
$VERSION
==
nightly
]]
;
then
find release
-name
"fr.irstea.cassiopee_*.deb"
-exec
scp
"{}"
$HOST_LOGIN
:
$RELEASES_DIR
/linux-nightly.deb
\;
find release
-name
"Cassio*Setup*.exe"
-exec
scp
"{}"
$HOST_LOGIN
:
$RELEASES_DIR
/windows-nightly.exe
\;
find release
-name
"Cassio*-mac.zip"
-exec
scp
"{}"
$HOST_LOGIN
:
$RELEASES_DIR
/macos-nightly.zip
\;
find release
-name
"cassiopee-*.apk"
-exec
scp
"{}"
$HOST_LOGIN
:
$RELEASES_DIR
/android-nightly.apk
\;
else
ls
-al
ls
-al
release
scp
"release/Cassiopée Setup
$VERSION
.exe"
"release/fr.irstea.cassiopee_
${
VERSION
}
_amd64.deb"
"release/cassiopee-
$VERSION
.apk"
"release/Cassiopée-
${
VERSION
}
-mac.zip"
"
$HOST_LOGIN
:
$RELEASES_DIR
/"
fi
# symlink "latest" version for each platform
...
...
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