--- version: "3" vars: CURRENT_BRANCH: sh: "git rev-parse --abbrev-ref HEAD" shopt: - "globstar" dotenv: - ".env" tasks: credentials: desc: "Generate credentials file" cmds: - "cp --no-clobber config/credentials.yml.enc.ci config/credentials.yml.enc" sources: - "config/credentials.yml.enc.ci" generates: - "config/credentials.yml.enc" env: desc: "Install the .env file" cmds: - "test -f .env || cp .env.example .env" - ": == Environment vars have changed, please review and edit ==" - "diff -auN --color .env.example .env" sources: - ".env.example" generates: - ".env" gems: desc: "Install gems" deps: - "env" - "credentials" cmds: - "go-task bundle" sources: - "Gemfile" generates: - "Gemfile.lock" clean: desc: "Clean" cmds: - "rm -rf _sites/test-* _deploy/test-* log/*.log tmp/cache tmp/letter_opener tmp/miniprofiler tmp/storage" node-modules: desc: "Install Node modules" cmds: - "{{.HAINISH}} yarn" sources: - "package.json" - "yarn.lock" status: - "test -d node_modules" assets: desc: "Generate assets" deps: - "node-modules" - "gems" cmds: - "git lfs fetch" - "git lfs checkout" - "go-task bundle rails -- webpacker:clobber RAILS_ENV=production" - "go-task bundle rails -- assets:precompile RAILS_ENV=production" - "go-task bundle rails -- assets:clean RAILS_ENV=production" sources: - "package.json" - "yarn.lock" - "app/assets/**/*" - "app/javascript/**/*" generates: - "public/packs/manifest.json" hosts: desc: "Local DNS resolution for hostnames" interactive: true cmds: - "echo -e \"127.0.0.1 panel.{{.SUTTY}} api.{{.SUTTY}} postgresql.{{.SUTTY}}\" | sudo tee -a /etc/hosts" - "echo -e \"::1 panel.{{.SUTTY}} api.{{.SUTTY}} postgresql.{{.SUTTY}}\" | sudo tee -a /etc/hosts" status: - "grep -q \" panel.{{.SUTTY}} \" /etc/hosts" database-init: desc: "Database install" deps: - "env" cmds: - "{{.HAINISH}} /usr/bin/initdb --locale en_US.utf8 -E UTF8 -D /var/lib/postgresql/{{.PGVER}}/data" - "echo \"host all all samenet trust\" >> ../hain/var/lib/postgresql/{{.PGVER}}/data/pg_hba.conf" - "echo \"listen_addresses = '*'\" >> ../hain/var/lib/postgresql/{{.PGVER}}/data/postgresql.conf" - "echo \"external_pid_file = '{{.PGPID}}'\" >> ../hain/var/lib/postgresql/{{.PGVER}}/data/postgresql.conf" status: - "test -d ../hain/var/lib/postgresql/{{.PGVER}}/data" - "test -f ../hain/var/lib/postgresql/{{.PGVER}}/data/postgresql.conf" database: desc: "Database" deps: - "database-init" cmds: - "{{.HAINISH}} daemonize -c /var/lib/postgresql/{{.PGVER}}/data /usr/bin/postgres -D /var/lib/postgresql/{{.PGVER}}/data" status: - "test -f ../hain{{.PGPID}}" - "pgrep -F ../hain{{.PGPID}}" prepare: desc: "Create database or run pending migrations" deps: - "database" cmds: - "go-task rails -- db:prepare" serve: desc: "Run Rails development server" deps: - "prepare" - "gems" cmds: - ": == Development server running at https://panel.{{.SUTTY_WITH_PORT}} ==" - "go-task rails -- server" status: - "test -f tmp/pids/server.pid" - "pgrep -F tmp/pids/server.pid" yarn: desc: "Yarn. Call with: go-task yarn -- arguments" deps: - "node-modules" cmds: - "{{.HAINISH}} yarn {{.CLI_ARGS}}" bundle: desc: "Bundle. Call with: go-task bundle -- arguments" deps: - "gems" cmds: - "{{.HAINISH}} bundle {{.CLI_ARGS}}" rails: desc: "Rails. Call with: go-task rails -- arguments" deps: - "prepare" cmds: - "go-task bundle -- exec rails {{.CLI_ARGS}}" console: desc: "Rails console" cmds: - "go-task rails -- console" doc: desc: "Build documentation" deps: - "gems" cmds: - "go-task bundle -- exec yardoc -o public/doc app lib config db"