@servers(['web' => 'softease@192.168.200.12']) @setup $dir = "/home/softease/www/gestiotest"; $shared = $dir . '/shared'; $repo = $dir . '/repo'; $release = $dir . "/releases/" . date('YmdHis'); $current = $dir . '/current'; $releases = 3; $user = "maxime.goncalves"; $password = "42heehqxwwvkyez6ucvwxf433lw3fvdopetqs44fcoqfr5g754gq"; $remote = "https://". $user .":". $password ."@dev.azure.com/Softease/Gestio%20Web/_git/Gestio%20Web"; @endsetup @task('prepare') mkdir -p {{$shared}}; git clone {{ $remote }} {{ $repo }}; cd {{ $repo }}; composer install --no-dev --no-progress; npm install --only=prod; @endtask {{--@story('dp')--}} {{-- create--}} {{-- composer--}} {{-- npm--}} {{--@endstory--}} @task('deploy') {{--CREATE RELEASE--}} mkdir -p {{ $release }}; cd {{ $repo }}; git pull {{$remote}}; git archive master | tar -x -C {{ $release }}; mkdir -p {{ $shared }}/storage; rm -rf {{ $release }}/storage; cd {{ $release }}; ln -nfs {{ $shared }}/storage storage; echo "création de {{ $release }}"; {{--COMPOSER--}} mkdir -p {{ $shared }}/vendor; ln -s {{$shared}}/vendor {{ $release }}/vendor; cd {{$release}}; composer update --no-dev --no-progress; {{--NPM--}} mkdir -p {{ $shared }}/node_modules; ln -s {{$shared}}/node_modules {{ $release }}/node_modules; cd {{$release}}; npm install --only=prod; {{--Current--}} rm -f {{$current}}; ln -s {{ $release }} {{ $current }}; ls {{ $dir }}/releases | sort -r | tail -n +{{$releases + 1 }} | xargs -I{} -r rm -rf {{ $dir }}/releases/{}; echo "lien : {{$current}} -> {{$releases}}"; {{-- Lien symbolique vers le fichier .env--}} ln -s {{ $shared }}/.env {{ $release }}/.env; @endtask {{-- Ne sont pas utilisées--}} @task('composer') mkdir -p {{ $shared }}/vendor; cd {{$release}}; composer update --no-dev --no-progress; ln -s {{$shared}}/vendor {{ $release }}/vendor; @endtask @task('npm') mkdir -p {{ $shared }}/node_modules; ln -s {{$shared}}/node_modules {{ $release }}/node_modules; cd {{$release}}; npm install --only=prod; @endtask @task('linkcurrent') rm -f {{$current}}; ln -s {{ $release }} {{ $current }}; ln {{ $dir }}/releases | sort -r | tail -n +{{$releases + 1 }} | xargs -I{} -r rm -rf {{ $dir }}/releases/{}; echo "lien : {{$current}} -> {{$releases}}; @endtask @task('rollback') rm -f {{$current}}; ls {{ $dir }}/releases | tail -n 2 | head -n 1 | xargs -I{} -r ln -s {{$dir}}/releases/{} {{$current}}; @endtask