ci: define app bundle script in .gitlab-ci.yml

set `bundle/` folder in .gitignore

closes #8
This commit is contained in:
Yassine Doghri 2020-09-09 16:15:36 +00:00
parent 02e4441f98
commit cbc5d0891d
3 changed files with 69 additions and 0 deletions

3
.gitignore vendored
View File

@ -146,3 +146,6 @@ public/*
mariadb
phpmyadmin
sessions
# Castopod bundle
bundle/

55
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,55 @@
image: php:7.2-fpm
stages:
- bundle
cache:
paths:
- vendor/
- node_modules/
before_script:
- apt-get update -y
# Install git (the php image doesn't have it) which is required by composer
- apt-get install git -y
# install rsync for file transfers
- apt-get install rsync -y
# install wget to download archives
- apt-get install wget
# Install composer
- apt-get install zip unzip
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- php composer-setup.php
- php -r "unlink('composer-setup.php');"
# Install NodeJS for NPM
- curl -sL https://deb.nodesource.com/setup_12.x | bash -
- apt-get update && apt-get install -y nodejs
# Install php and js dependencies
- php composer.phar install --no-dev --ignore-platform-reqs
- npm install
bundle_app:
stage: bundle
script:
# build all assets for views
- npm run build
# download GeoLite2-Country and opawg/user-agents archives and extract them to writable/uploads
- wget -c "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country&license_key=$MAXMIND_LICENCE_KEY&suffix=tar.gz" -O - | tar -xz -C ./writable/uploads/
- wget -c "https://github.com/opawg/user-agents/archive/master.tar.gz" -O - | tar -xz -C ./writable/uploads/
# rename extracted archives' folders
- mv ./writable/uploads/GeoLite2-Country* ./writable/uploads/GeoLite2-Country
- mv ./writable/uploads/user-agents* ./writable/uploads/user-agents
# create bundle folder: uses .rsync-filter (-F) file to copy only needed files
- rsync -avF --progress . ./bundle
artifacts:
name: "castopod-${CI_COMMIT_REF_SLUG}_${CI_COMMIT_SHORT_SHA}"
paths:
- bundle

11
.rsync-filter Normal file
View File

@ -0,0 +1,11 @@
# rsync filter rules to copy required files for Castopod's bundle
- app/Views/_assets/
+ app/***
+ public/***
+ vendor/***
+ writable/***
+ DEPENDENCIES.md
+ LICENSE
+ README.md
- **