diff --git a/.mage.yml.dist b/.mage.yml.dist new file mode 100644 index 0000000..a7e18ea --- /dev/null +++ b/.mage.yml.dist @@ -0,0 +1,25 @@ +magephp: + environments: + prod: + user: ssh_user + from: ./ + to: app_directory + host_path: app_directory + rsync: '-avz --delete' + exclude: + - "/.git" + - "*.swp" + - "*.swo" + - "/.env.local" + - "/data" + - "/migrations/*" + - "/public/uploads/" + - "/public/files/" + - "/var/cache/*" + - "/var/log/*" + - "/public/media" + hosts: + - ssh_host + on-deploy: + - exec: { cmd: 'make clean', desc: 'cache' } + - exec: { cmd: 'make doctrine-migration', desc: 'migration' } diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..9b75758 --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,66 @@ +pipeline: + create_db: + image: mariadb:10.3 + secrets: [mysqldump] + commands: + - sleep 20 + - mysql -hdb -uroot -proot -e "CREATE DATABASE app" + - eval "$MYSQLDUMP" | mysql -hdb -uroot -proot app + + config: + image: deblan/php:8.1 + commands: + - echo APP_ENV=prod >> .env.local + - echo APP_SECRET=$(openssl rand -hex 32) >> .env.local + - echo DATABASE_URL=mysql://root:root@db/app >> .env.local + + composer: + image: deblan/php:8.1 + commands: + - apt-get update && apt-get -y install git + - composer install --no-scripts + + migrate: + image: deblan/php:8.1 + environment: + - PHP=php + commands: + - ./bin/doctrine-migrate + + jsroutes: + image: deblan/php:8.1 + commands: + - php bin/console fos:js-routing:dump --format=json --target=public/js/fos_js_routes.json + + node: + image: node:16-slim + commands: + - npm install -g svg2ttf ttf2eot ttf2woff2 + - svg2ttf assets/fonts/deblan/src/deblan-icon.svg assets/fonts/deblan/deblan-icon.ttf + - cat assets/fonts/deblan/deblan-icon.ttf | ttf2woff2 > assets/fonts/deblan/deblan-icon.woff2 + - ttf2eot assets/fonts/deblan/deblan-icon.ttf assets/fonts/deblan/deblan-icon.eot + - yarn + - npm run build + + deploy_prod: + image: deblan/php:8.1 + secrets: [ssh_user, ssh_host, ssh_priv_key, app_directory] + commands: + - mkdir "$HOME/.ssh" + - echo "$SSH_PRIV_KEY" > "$HOME/.ssh/id_ed25519" + - chmod 700 "$HOME/.ssh" + - chmod 600 "$HOME/.ssh/id_ed25519" + - composer global require andres-montanez/magallanes + - cp .mage.yml.dist .mage.yml + - sed -i "s/ssh_user/$SSH_USER/g" .mage.yml + - sed -i "s/ssh_host/$SSH_HOST/g" .mage.yml + - sed -i "s#app_directory#$APP_DIRECTORY#g" .mage.yml + - /root/.config/composer/vendor/bin/mage deploy "$CI_BUILD_DEPLOY_TARGET" + when: + event: [deploy] + +services: + db: + image: mariadb:10.3 + environment: + - MARIADB_ROOT_PASSWORD=root diff --git a/package.json b/package.json index 2244b51..c267e8e 100644 --- a/package.json +++ b/package.json @@ -2,10 +2,10 @@ "license": "MIT", "private": true, "scripts": { - "dev-server": "encore dev-server", - "dev": "encore dev", - "watch": "encore dev --watch", - "build": "encore production" + "dev-server": "./node_modules/.bin/encore dev-server", + "dev": "./node_modules/.bin/encore dev", + "watch": "./node_modules/.bin/encore dev --watch", + "build": "./node_modules/.bin/encore production" }, "dependencies": { "daisyui": "^2.31.0",