11---
22version : ' 3' 
3+ 
34includes :
45 ansible :
56 taskfile : ./.config/taskfiles/ansible/Taskfile.yml 
@@ -184,6 +185,7 @@ includes:
184185 localhost :
185186 taskfile : ./../../Taskfile-localhost.yml 
186187 optional : true 
188+ 
187189 log :
188190 optional : true 
189191 taskfile : ./.config/taskfiles/log/Taskfile.yml 
@@ -314,6 +316,7 @@ includes:
314316 taskfile : ./.config/taskfiles/web/Taskfile-profile.yml 
315317 optional : true 
316318output : interleaved 
319+ 
317320vars :
318321 DOCKERHUB_PROFILE :
319322 sh : | 
@@ -366,7 +369,11 @@ vars:
366369  GROUP_EXEC_ASYNC : ' false' 
367370 #  yamllint disable rule:line-length
368371 IGNORE_FOLDERS : >- 
369-  -path './.autodoc/*' -o -path './.cache/*' -o -path './.common*' -o -path './.config/*' -o -path './.git/*' -o -path './.modules/*' -o -path './.npm/*' -o -path './.pnpm-store/*' -o -path './.shared/*' -o -path './.task/*' -o -path './.venv/*' -o -path './.vscode/*' -o -path './build/*' -o -path './dist/*' -o -path './node_modules/*' -o -path './roles/*' -o -name pnpm-lock.yaml -o -name package-lock.json -o -name poetry.lock -o -name '.variables.json' -o -name '.git' 
372+  -path './.autodoc/*' -o -path './.cache/*' -o -path './.common*' -o -path './.config/*' -o -path './.git/*' -o 
373+  -path './.modules/*' -o -path './.npm/*' -o 
374+  -path './.pnpm-store/*' -o -path './.shared/*' -o -path './.task/*' -o -path './.venv/*' -o -path './.vscode/*' -o 
375+  -path './build/*' -o -path './dist/*' -o -path './node_modules/*' -o -path './roles/*' -o -name pnpm-lock.yaml -o 
376+  -name package-lock.json -o -name poetry.lock -o -name '.variables.json' -o -name '.git' 
370377  INIT_SCRIPT : https://gitlab.com/megabyte-labs/gitlab-ci/-/raw/master/scripts/update-init.sh 
371378 LOG_FIX :
372379 sh : chmod +x .config/log 
@@ -398,13 +405,34 @@ vars:
398405 fi 
399406  PYTHON_VIRTUALENV : true 
400407 REPOSITORY_SUBTYPE :
401-  sh : if type jq &> /dev/null && [ -f package.json ]; then VER="$(jq -r .blueprint.subgroup package.json)"; if [ "$VER" == null ]; then echo "$REPOSITORY_TYPE"; else echo "$VER"; fi; else echo "$REPOSITORY_TYPE"; fi 
408+  sh : | 
409+  if [ -n "$REPOSITORY_TYPE" ]; then REPO_SUBTYPE="$REPOSITORY_TYPE"; fi 
410+  if type jq &> /dev/null && [ -f package.json ]; then 
411+  VER="$(jq -r '.blueprint.subgroup' package.json)" 
412+  if [ "$VER" == 'null' ]; then 
413+  if [ -n "$REPO_SUBTYPE" ]; then echo "$REPO_SUBTYPE"; else echo "misc"; fi 
414+  else 
415+  echo "$VER" 
416+  fi 
417+  else 
418+  if [ -n "$REPO_SUBTYPE" ]; then echo "$REPO_SUBTYPE"; else echo "misc"; fi 
419+  fi 
402420  REPOSITORY_TYPE :
403-  sh : if type jq &> /dev/null && [ -f package.json ]; then VER="$(jq -r .blueprint.group package.json)"; if [ "$VER" == null ]; then echo "$GROUP_TYPE"; else echo "$VER"; fi; else echo "$GROUP_TYPE"; fi 
421+  sh : | 
422+  if [ -n "$GROUP_TYPE" ]; then REPO_TYPE="$GROUP_TYPE"; fi 
423+  if type jq &> /dev/null && [ -f package.json ]; then 
424+  VER="$(jq -r '.blueprint.group' package.json)" 
425+  if [ "$VER" == 'null' ]; then 
426+  if [ -n "$REPO_TYPE" ]; then echo "$REPO_TYPE"; else echo "misc"; fi 
427+  else 
428+  echo "$VER" 
429+  fi 
430+  else 
431+  if [ -n "$REPO_TYPE" ]; then echo "$REPO_TYPE"; else echo "misc"; fi 
432+  fi 
404433  SEMANTIC_CONFIG : semantic-release-config 
405434 TIMEZONE : America/New_York 
406-  includes :
407-  common:start : ./.config/taskfiles/common/Taskfile-start.yml 
435+ 
408436env :
409437 GOPATH :
410438 sh : | 
437465 fi 
438466  VOLTA_HOME :
439467 sh : echo "$HOME/.volta" 
468+ 
440469profile : | 
441470 if [[ "$OSTYPE" == 'linux-gnu'* ]] || [[ "$OSTYPE" == 'linux-musl'* ]]; then 
442471 if [ -f /home/linuxbrew/.linuxbrew/bin/brew ] && ! type brew > /dev/null; then 
@@ -455,6 +484,7 @@ profile: |
455484 if [ -f .venv/bin/activate ]; then 
456485 . .venv/bin/activate 
457486 fi 
487+ 
458488tasks :
459489 build :
460490 deps :
@@ -483,6 +513,7 @@ tasks:
483513 else 
484514 [[ $- == *i* ]] && task prepare || (.config/log error '{{.NONINTERACTIVE_MISSING_BUILD_CMD}}' && exit 1) 
485515 fi 
516+ 
486517  clean :
487518 desc : Removes optional folders that are cached during various tasks 
488519 summary : | 
@@ -493,11 +524,13 @@ tasks:
493524 which will re-generate the project from scratch. Ideally, this task and the reset task 
494525 should never be necessary. The `start` task should be used instead. 
495526  vars :
496-  CLEAN_TARGETS : .autodoc .cache .task .venv node_modules tsconfig.tsbuildinfo venv .variables.json 
527+  CLEAN_TARGETS : .autodoc .cache .task .venv node_modules tsconfig.tsbuildinfo venv 
528+  .variables.json 
497529 cmds :
498530 - task : common:clean 
499531 vars :
500532 CLEAN_TARGETS : ' {{.CLEAN_TARGETS}}' 
533+ 
501534 commit :
502535 desc : Lint staged files, report spelling errors, and open a _required_ commit dialoge 
503536 summary : | 
@@ -514,6 +547,7 @@ tasks:
514547 to your regular `git commit -m` command to bypass the pre-commit hook. 
515548  cmds :
516549 - task : common:commit 
550+ 
517551 commit:all :
518552 deps :
519553 - install:software:git 
@@ -551,20 +585,24 @@ tasks:
551585 git add --all 
552586 git commit 
553587 {{end}} 
588+ 
554589  commit:quick :
555590 deps :
556591 - ci:commit:config 
557592 cmds :
558593 - | 
559594 task --list > /dev/null || (echo "ERROR: Invalid Taskfiles!" && exit 1) 
560595 git add --all 
561-   - " HUSKY=0 git commit -m '\U0001F527  chore(tweak) "  : quick minor update' --no-verify 
596+   - HUSKY=0 git commit -m '🔧  chore(tweak) : quick minor update' --no-verify 
562597 - git push origin master 
598+ 
563599 devcontainer :
564600 deps :
565601 - install:npm:devcontainer 
566602 - install:software:docker 
603+ 
567604 donothing : ' true' 
605+ 
568606 fix :
569607 desc : Run code auto-fixers / auto-formatters 
570608 summary : | 
@@ -575,6 +613,7 @@ tasks:
575613 an error so the auto-fixes still have to be validated. 
576614  cmds :
577615 - task : fix:all 
616+ 
578617 fresh :
579618 summary : Initialize a new project with only the Taskfile.yml present 
580619 cmds :
@@ -586,6 +625,7 @@ tasks:
586625 - TMP="$(mktemp)" && jq -r 'del(.blueprint)' package.json > "$TMP" && mv "$TMP" package.json 
587626 - bash start.sh 
588627 - task : prepare 
628+ 
589629 get:links :
590630 deps :
591631 - install:software:jq 
@@ -598,6 +638,7 @@ tasks:
598638 cmds :
599639 - .config/log info 'GitHub -----> `{{.GITHUB_URL}}`' 
600640 - .config/log info 'GitLab -----> `{{.GITLAB_URL}}`' 
641+ 
601642 group:exec :
602643 desc : Execute group commands on any GitLab group (including repositories in sub-groups) 
603644 summary : | 
@@ -618,6 +659,7 @@ tasks:
618659 Be sure to wrap the command in quotes or you might observe some odd behavior. 
619660  cmds :
620661 - task : git:gitlab:group:exec 
662+ 
621663 init :
622664 deps :
623665 - install:software:jq 
@@ -650,10 +692,12 @@ tasks:
650692 - git init 
651693 - task : repair 
652694 - task : prepare 
695+ 
653696 jumpusb :
654697 desc : Creates a JumpUSB (https://jumpusb.com) 
655698 cmds :
656699 - task : install:ventoy 
700+ 
657701 lint :
658702 desc : Lints the project using all linters 
659703 summary : | 
@@ -667,6 +711,7 @@ tasks:
667711 `task lint` 
668712  cmds :
669713 - task : lint:all 
714+ 
670715 livereload :
671716 deps :
672717 - install:npm:nodemon 
@@ -706,10 +751,12 @@ tasks:
706751 .config/log error '`Taskfile-project.yml` must exist and have a `livereload` task to use with `nodemon`' && exit 1 
707752 fi 
708753  - nodemon --config {{if .CLI_ARGS}}{{.CLI_ARGS}}{{else}}.config/nodemon.json{{end}} 
754+ 
709755 new:project :
710756 desc : Create a new project 
711757 cmds :
712758 - task : prepare 
759+ 
713760 preload :
714761 desc : Set up your workstation in advance by installing commonly used programs 
715762 summary : | 
@@ -752,6 +799,7 @@ tasks:
752799 - task : install:pipx:bundle 
753800 - task : install:python:requirements 
754801 - task : install:modules:local 
802+ 
755803 prepare :
756804 desc : Prepares the project for the normal start command 
757805 summary : | 
@@ -768,6 +816,7 @@ tasks:
768816 cmds :
769817 - task : boilerplate:check:package 
770818 - task : boilerplate:clean 
819+ 
771820 publish :
772821 desc : Publish a semantic release via `semantic-release` 
773822 summary : | 
@@ -815,6 +864,7 @@ tasks:
815864 success : Successfully ran `semantic-release` via `task publish` 
816865 cmds :
817866 - task : publish:semantic-release 
867+ 
818868 publish:force :
819869 desc : Force a `semantic-release` even if there are no new eligible commits 
820870 summary : | 
@@ -840,8 +890,10 @@ tasks:
840890 start : Publishing `semantic-release` update via `task publish:force` 
841891 success : Successfully published update via `task publish:force` 
842892 cmds :
843-  - " HUSKY=0 git commit -a --allow-empty -m '\U0001F528  chore(bump): Forced semantic-release {{.UPDATE_LEVEL}}' -n\n " 
893+  - | 
894+  HUSKY=0 git commit -a --allow-empty -m '🔨 chore(bump): Forced semantic-release {{.UPDATE_LEVEL}}' -n 
844895  - task : publish 
896+ 
845897 pull:upstream :
846898 desc : Pull from upstream repositories 
847899 summary : | 
@@ -858,6 +910,7 @@ tasks:
858910 success : Successfully pulled from `upstreamRemotes` 
859911 cmds :
860912 - task : common:update:upstream:remotes:pull 
913+ 
861914 repair :
862915 cmds :
863916 - task : common:repair 
@@ -868,6 +921,7 @@ tasks:
868921 else 
869922 curl -sSL {{.INIT_SCRIPT}} > "$TMP" && bash "$TMP" && rm "$TMP" 
870923 fi 
924+ 
871925  reset :
872926 desc : Resets the project by removing all caches and then re-generating templated files 
873927 summary : | 
@@ -879,6 +933,7 @@ tasks:
879933 updates, it re-generates any templated files. 
880934  cmds :
881935 - task : common:reset 
936+ 
882937 reset:force :
883938 desc : ' Aggressively reset the project (**WARNING** This will wipe uncommitted work)' 
884939 summary : | 
@@ -897,6 +952,7 @@ tasks:
897952 answer :
898953 cmds :
899954 - task : common:reset:force 
955+ 
900956 scripts :
901957 interactive : true 
902958 deps :
@@ -914,6 +970,7 @@ tasks:
914970 start : Running `NTL_RUNNER={{.NPM_PROGRAM}} ntl` 
915971 cmds :
916972 - NTL_RUNNER={{.NPM_PROGRAM}} ntl 
973+ 
917974 services :
918975 desc : Update elements of the repository that require API access 
919976 summary : | 
@@ -926,6 +983,7 @@ tasks:
926983 - task : common:update:services 
927984 status :
928985 - ' [ -n "$GITLAB_CI" ] && [ "$REPOSITORY_UPDATE" != "true" ]' 
986+ 
929987 shell :
930988 desc : Start a terminal session using Docker with any Linux operating system 
931989 compile : | 
@@ -959,11 +1017,13 @@ tasks:
9591017 * ubuntu-21.04 
9601018  cmds :
9611019 - task : common:shell 
1020+ 
9621021 ssh-keys :
9631022 deps :
9641023 - cloud:heroku:ssh-keys 
9651024 - git:github:ssh-keys 
9661025 - git:gitlab:ssh-keys 
1026+ 
9671027 start :
9681028 desc : Start the project by installing / updating dependencies, repairing issues, and opening a tutorial 
9691029 summary : | 
@@ -987,6 +1047,7 @@ tasks:
9871047 success : Project started! 
9881048 cmds :
9891049 - task : common:start 
1050+ 
9901051 synchronize :
9911052 desc : Set up the project and refresh it with the latest changes 
9921053 summary : | 
@@ -1007,6 +1068,7 @@ tasks:
10071068 success : Successfully synchronized the project with upstream file changes and also bootstrapped the project 
10081069 cmds :
10091070 - task : upstream:{{.PROJECT_TYPE}} 
1071+ 
10101072 tag:deps :
10111073 desc : Inject a new command in the `Taskfile.yml` that includes all tasks matching a given tag as deps 
10121074 summary : | 
@@ -1035,6 +1097,7 @@ tasks:
10351097 ``` 
10361098  cmds :
10371099 - task : common:util:task:tag:deps 
1100+ 
10381101 template :
10391102 deps :
10401103 - install:npm:liquidjs 
@@ -1056,6 +1119,7 @@ tasks:
10561119  preconditions :
10571120 - sh : test -f .variables.json 
10581121 msg : This task requires that you have already spun up the project by running `task start` 
1122+ 
10591123 test :
10601124 deps :
10611125 - install:software:jq 
@@ -1076,6 +1140,7 @@ tasks:
10761140 else 
10771141 [[ $- == *i* ]] && task prepare || (.config/log error '{{.NONINTERACTIVE_MISSING_TEST_CMD}}' && exit 1) 
10781142 fi 
1143+ 
10791144  update :
10801145 desc : Fully update the repository 
10811146 summary : | 
@@ -1102,7 +1167,9 @@ tasks:
11021167 cmds :
11031168 - task : common:start 
11041169 env :
1105-  UPDATE_PROJECT : " true" 
1170+  UPDATE_PROJECT : ' true' 
1171+  - task : common:update:finish 
1172+ 
11061173 yubikey :
11071174 desc : Create an OpenGPG-enabled YubiKey 
11081175 summary : | 
0 commit comments