Skip to content
Snippets Groups Projects
Unverified Commit 024af75b authored by Bekerle, Patrizio's avatar Bekerle, Patrizio :fire:
Browse files

Remove deployment job

parent 5be98ab5
Branches
No related tags found
No related merge requests found
Pipeline #85442 passed
......@@ -14,8 +14,6 @@ cache:
stages:
- test
- deploy
- e2e
.test_defaults: &test_defaults
script:
......@@ -41,55 +39,26 @@ test-php8.0:
PHP: "php8.0"
<<: *test_defaults
linting:
psalm:
stage: test
allow_failure: true
script:
- sudo update-alternatives --set php /usr/bin/php7.4
- composer install
- result=0
- composer run cs || result=1
- composer run phpstan || result=1
- composer run psalm || result=1
- exit $result
- composer run psalm
.deploy_defaults: &deploy_defaults
needs: ["test-php7.3", "test-php7.4"]
except:
- schedules
stage: deploy
phpstan:
stage: test
allow_failure: true
script:
- sudo update-alternatives --set php /usr/bin/php7.3
# 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_development:
only:
refs:
- main
environment:
name: development
url: https://api-template-dev.tugraz.at/
variables:
DEPLOY_HOST: mw01-dev.tugraz.at
DEPLOY_KEY: "$DEPLOY_SSH_KEY"
<<: *deploy_defaults
- sudo update-alternatives --set php /usr/bin/php7.4
- composer install
- composer run phpstan
e2e_tests:
only:
refs:
- main
variables:
E2E_PROJECT: rest
stage: e2e
trigger:
project: dbp/e2e-tests
strategy: depend
cs-fixer:
stage: test
allow_failure: true
script:
- sudo update-alternatives --set php /usr/bin/php7.4
- composer install
- composer run cs
/vendor
\ No newline at end of file
FROM debian:bullseye
ENV LANG C.UTF-8
ENV DEBIAN_FRONTEND noninteractive
# Basics
RUN apt-get update && apt-get install -y \
composer \
php-zip \
rsync \
sudo \
wget \
curl \
lsb-release \
&& rm -rf /var/lib/apt/lists/*
# PHP Repo
RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
RUN echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
# PHP 7.3
RUN apt-get update && apt-get install -y \
php7.3 \
php7.3-curl \
php7.3-soap \
php7.3-xml \
php7.3-ldap \
php7.3-zip \
php7.3-gmp \
php7.3-xdebug \
php7.3-gd \
php7.3-mysql \
php7.3-mbstring \
&& rm -rf /var/lib/apt/lists/*
COPY ./php-ini-overrides.ini /etc/php/7.3/cli/conf.d/
# PHP 7.4
RUN apt-get update && apt-get install -y \
php7.4 \
php7.4-curl \
php7.4-soap \
php7.4-xml \
php7.4-ldap \
php7.4-zip \
php7.4-gmp \
php7.4-xdebug \
php7.4-gd \
php7.4-mysql \
php7.4-mbstring \
&& rm -rf /var/lib/apt/lists/*
COPY ./php-ini-overrides.ini /etc/php/7.4/cli/conf.d/
# PHP 8.0
RUN apt-get update && apt-get install -y \
php8.0 \
php8.0-curl \
php8.0-soap \
php8.0-xml \
php8.0-ldap \
php8.0-zip \
php8.0-gmp \
php8.0-xdebug \
php8.0-gd \
php8.0-mysql \
php8.0-mbstring \
&& rm -rf /var/lib/apt/lists/*
COPY ./php-ini-overrides.ini /etc/php/8.0/cli/conf.d/
# Default to PHP 7.3
RUN sudo update-alternatives --set php /usr/bin/php7.3
RUN sudo update-alternatives --set phar /usr/bin/phar7.3
RUN sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.3
# Add a normal user and enable sudo
RUN useradd -u 1000 -ms /bin/bash user
RUN echo 'user ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER 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}"
# Install a newer composer
RUN mkdir -p /home/user/.local/bin
WORKDIR /home/user/.local/bin
RUN wget https://raw.githubusercontent.com/composer/getcomposer.org/bfd95e2a4383ee9cf7c058c2df29d7acb5f86d77/web/installer -O - -q | php --
RUN mv composer.phar composer
ENV PATH "/home/user/.local/bin:$PATH"
WORKDIR /home/user
\ No newline at end of file
* 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/dbp-api/dbp-relay-server-template/main:v2
\ No newline at end of file
#!/bin/bash
set -e
TAG="registry.gitlab.tugraz.at/dbp/relay/dbp-relay-server-template/main:v2"
sudo docker build --tag "${TAG}" --file "Dockerfile" .
sudo docker run --rm --security-opt label=disable \
--volume "$(pwd)/..:/home/user/app" --workdir "/home/user/app" \
--tty --interactive "${TAG}" bash
echo "Now run: sudo docker push '$TAG'"
{
"require": {
"symfony/process": " ^5.0",
"symfony/console": " ^5.0",
"symfony/yaml": " ^5.0",
"deployer/deployer": " ^6.4",
"deployer/recipes": " ^6.2"
},
"config": {
"platform": {
"php": "7.3"
}
}
}
This diff is collapsed.
<?php
declare(strict_types=1);
namespace Deployer;
require 'recipe/common.php';
require 'recipe/rsync.php';
require 'recipe/cachetool.php';
// Global config
set('allow_anonymous_stats', false);
$rsync_config = [
'exclude' => [
'.git',
'deploy.php',
'_composer_cache',
],
'exclude-file' => false,
'include' => [],
'include-file' => false,
'filter' => [],
'filter-file' => false,
'filter-perdir' => false,
'flags' => 'rz',
'options' => ['delete', 'links'],
'timeout' => 60,
];
// Hosts
host('development')
->stage('development')
->hostname('mw@mw01-dev.tugraz.at')
->set('deploy_path', '/home/mw/dev01/deploy/api-server-template')
->set('shared_dirs', ['var/log', 'var/sessions'])
->set('APP_ENV', 'prod')
->set('APP_DEBUG', '0')
->set('AUTH_SERVER_URL', 'https://auth-dev.tugraz.at/auth/realms/tugraz-vpu')
->set('AUTH_APIDOCS_KEYCLOAK_SERVER', 'https://auth-dev.tugraz.at/auth')
->set('AUTH_APIDOCS_KEYCLOAK_REALM', 'tugraz-vpu')
->set('AUTH_APIDOCS_KEYCLOAK_CLIENT_ID', 'dbp-api-template-frontend')
->set('rsync', $rsync_config)
->set('rsync_src', __DIR__.'/../')
->set('rsync_dest', '{{release_path}}')
->set('cachetool', '127.0.0.1:9001')
->set('bin/cachetool', '/home/mw/bin/cachetool');
// Build task
task('build-custom', function () {
$APP_ENV = get('APP_ENV');
$vars = [
'APP_ENV' => $APP_ENV,
'APP_DEBUG' => get('APP_DEBUG'),
'AUTH_SERVER_URL' => get('AUTH_SERVER_URL'),
'AUTH_APIDOCS_KEYCLOAK_SERVER' => get('AUTH_APIDOCS_KEYCLOAK_SERVER'),
'AUTH_APIDOCS_KEYCLOAK_REALM' => get('AUTH_APIDOCS_KEYCLOAK_REALM'),
'AUTH_APIDOCS_KEYCLOAK_CLIENT_ID' => get('AUTH_APIDOCS_KEYCLOAK_CLIENT_ID'),
];
// build .env.local file
runLocally('rm -f .env.local');
foreach ($vars as $key => $value) {
if (!isset($value) || $value === '') {
throw new \Exception("'${key}' is not set");
}
runLocally("echo '${key}=${value}' >> .env.local");
}
// Add build commit
$commit = runLocally('git rev-parse --short HEAD');
runLocally("echo \"CORE_API_BUILDINFO=${commit}\" >> .env.local");
// Add commit url to gitlab
$remote = runLocally('git config --get remote.origin.url');
$parts = parse_url($remote);
$parts['path'] = substr($parts['path'], 0, (strrpos($parts['path'], '.')));
$base_url = $parts['scheme'].'://'.$parts['host'].$parts['path'];
$build_url = $base_url.'/'.rawurlencode('commit').'/'.rawurlencode($commit);
runLocally("echo \"CORE_API_BUILDINFO_URL=${build_url}\" >> .env.local");
// composer install and optimize
runLocally('composer install --no-dev --classmap-authoritative');
// build .env.local.php file
runLocally('rm -f .env.local.php');
runLocally("composer dump-env '$APP_ENV'");
runLocally('rm -f .env.local');
// Cache clear/warmup
runLocally('php bin/console cache:clear');
});
// Deploy task
task('deploy', [
'deploy:info',
'build-custom',
'deploy:prepare',
'deploy:lock',
'deploy:release',
'rsync',
'deploy:shared',
'deploy:symlink',
'deploy:unlock',
'cleanup',
'success',
]);
after('deploy:failed', 'deploy:unlock');
// Clear opcache
after('deploy:symlink', 'cachetool:clear:opcache');
zend.assertions = 1
date.timezone = "Europe/Vienna"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment