Skip to content
Snippets Groups Projects
Commit ab4a6cfa authored by Reiter, Christoph's avatar Reiter, Christoph :snake:
Browse files

CI: move deployment to external repo

parent 47c960c2
No related branches found
No related tags found
No related merge requests found
Pipeline #190995 passed
......@@ -44,65 +44,21 @@ publish:
# yarn always reports "https://registry.yarnpkg.com/@dbp-topics%2fsignature - Not found", so we are using npm directly
- npm run publish
.deploy_defaults: &deploy_defaults
deploy:
stage: deploy
except:
- schedules
stage: deploy
script:
# Add ssh key
- mkdir -p ~/.ssh
- echo "${DEPLOY_KEY}" | tr -d '\r' > ~/.ssh/id_rsa
- chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_rsa
- ssh-keyscan -t rsa "${DEPLOY_HOST}" >> ~/.ssh/known_hosts
# Deploy
- dep deploy --file ./.gitlab-ci/deploy.php "${CI_ENVIRONMENT_NAME}"
- echo "Deployed to ${CI_ENVIRONMENT_URL}"
# Simple health check
- curl --max-time 10 --retry 3 --output /dev/null --silent --show-error --fail --location "${CI_ENVIRONMENT_URL}"
deploy_demo:
only:
refs:
- demo
environment:
name: demo
url: https://dbp-demo.tugraz.at/apps/signature
variables:
DEPLOY_HOST: vpu01-demo.tugraz.at
DEPLOY_KEY: "$DEPLOY_SSH_KEY"
<<: *deploy_defaults
deploy_development:
only:
refs:
- master
environment:
name: development
url: https://dbp-dev.tugraz.at/apps/signature
variables:
DEPLOY_HOST: mw01-dev.tugraz.at
DEPLOY_KEY: "$DEPLOY_SSH_KEY"
<<: *deploy_defaults
deploy_production:
only:
refs:
- demo
- production
environment:
name: production
url: https://esign.tugraz.at
variables:
DEPLOY_HOST: mw01-prod.tugraz.at
DEPLOY_KEY: "$DEPLOY_SSH_KEY"
<<: *deploy_defaults
e2e_tests:
only:
refs:
- master
inherit:
variables: false
variables:
E2E_PROJECT: signature
stage: e2e
UPSTREAM_PROJECT_PATH: ${CI_PROJECT_PATH}
UPSTREAM_COMMIT_BRANCH: ${CI_COMMIT_BRANCH}
UPSTREAM_COMMIT_SHA: ${CI_COMMIT_SHA}
trigger:
project: dbp/e2e-tests
project: dbp/deployer
strategy: depend
......@@ -20,9 +20,6 @@ RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.lis
RUN apt-get update && apt-get install -y \
nodejs \
yarn \
composer \
php-zip \
php-curl \
rsync \
sudo \
&& rm -rf /var/lib/apt/lists/*
......@@ -41,13 +38,5 @@ RUN echo 'user ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER user
WORKDIR /home/user
# Install deployer globally and add it to PATH
ENV COMPOSER_HOME="/home/user/.composer"
RUN mkdir -p "${COMPOSER_HOME}"
ADD composer.lock "${COMPOSER_HOME}"
ADD composer.json "${COMPOSER_HOME}"
RUN composer global install
ENV PATH "${COMPOSER_HOME}/vendor/bin:${PATH}"
# https://stackoverflow.com/questions/53230823
ENV NODE_OPTIONS '--max-old-space-size=4096'
* In case of an incompatible change increase the tag version number in build.sh
* ./build.sh
* (first time) sudo docker login registry.gitlab.tugraz.at
* sudo docker push registry.gitlab.tugraz.at/dbp/esign/signature/main:v1
\ No newline at end of file
{
"require": {
"symfony/process": " ^4.4",
"symfony/console": " ^4.4",
"symfony/yaml": " ^4.4",
"deployer/deployer": " ^6.4",
"deployer/recipes": " ^6.2"
}
}
This diff is collapsed.
<?php
namespace Deployer;
require 'recipe/common.php';
require 'recipe/rsync.php';
// Global config
set('allow_anonymous_stats', false);
set('rsync',[
'exclude' => [
'.git',
'deploy.php',
],
'exclude-file' => false,
'include' => [],
'include-file' => false,
'filter' => [],
'filter-file' => false,
'filter-perdir'=> false,
'flags' => 'rz',
'options' => ['delete'],
'timeout' => 60,
]);
set('rsync_src', __DIR__ . '/../dist');
set('rsync_dest','{{release_path}}');
// Hosts
host('demo')
->stage('demo')
->hostname('mw@vpu01-demo.tugraz.at')
->set('deploy_path', '/home/mw/demo/deploy/apps/signature');
host('development')
->stage('development')
->hostname('mw@mw01-dev.tugraz.at')
->set('deploy_path', '/home/mw/dev/deploy/apps/signature');
host('production')
->stage('production')
->hostname('mw@mw01-prod.tugraz.at')
->set('deploy_path', '/home/mw/prod_esig/deploy');
task('build', function () {
$stage = get('stage');
runLocally("yarn install");
runLocally("APP_ENV=$stage yarn run build");
});
// Deploy task
task('deploy', [
'deploy:info',
'build',
'deploy:prepare',
'deploy:lock',
'deploy:release',
'rsync',
'deploy:shared',
'deploy:symlink',
'deploy:unlock',
'cleanup',
'success',
]);
after('deploy:failed', 'deploy:unlock');
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment