install.fairie/.config/taskfiles/common/Taskfile-start.yml
Brian Zalewski f42899b107 Latest
2022-12-24 15:04:59 -05:00

176 lines
3.7 KiB
YAML

---
version: '3'
vars:
ENV_GOBIN:
sh: mktemp
ENV_GOROOT:
sh: mktemp
ENV_PATH:
sh: mktemp
env:
PREPARE_PROJECT: 'true'
UPDATE_GIT_REPOS: 'true'
tasks:
ci:
run: once
cmds:
- task: setup
status:
- '[ -n "$CI" ]'
commit:
run: once
cmds:
- task: :git:commit:automated
- task: :git:push:all
- task: :ci:synchronize
dev:
cmds:
- task: setup
status:
- '([ -z "$CI" ] && [ -f /.dockerenv ])'
devcontainer:
cmds:
- task: :install:modules:local
- task: :install:python:requirements:poetry
- task: :git:remotes
status:
- '[ ! -f /.devcontainer ]'
docker:
cmds:
- task: docker:taskfile
status:
- '[ "{{.DOCKER_BUILDING}}" != "true" ]'
docker:taskfile:
cmds:
- task: :deps:run:parallel
status:
- '[ ! -f Taskfile.yml ]'
init:
run: once
log:
error: Error encountered while initializing the update process
start: Initializing the update process
success: Finished initializing the update process
cmds:
- task: :ci:before
- task: :ci:submodules
- task: :repair
prepare:
run: once
cmds:
- task: :prepare
status:
- '[ "$PREPARE_PROJECT" != "true" ] || [ -f /.devcontainer ]'
prereqs:
env:
PATH:
sh: |
if type brew &> /dev/null; then
echo "$PATH"
else
. "$HOME/.profile" &> /dev/null || true
echo "$PATH"
fi
run: once
log:
error: Error encountered while installing pre-requisite software
start: Ensuring pre-requisite software is installed and added to the PATH
success: Pre-requisite software is installed
cmds:
- task: :install:software:jq
- task: :install:software:yq
- task: :install:software:node
- task: :install:software:poetry
- task: :install:software:go
- task: :install:software:task
register:env:
cmds:
- cmd: |
. "$HOME/.profile" &> /dev/null || true
echo "$PATH" > '{{.ENV_PATH}}'
echo "$GOBIN" > '{{.ENV_GOBIN}}'
echo "$GOROOT" > '{{.ENV_GOROOT}}'
ignore_error: true
status:
- type jq &> /dev/null
- type yq &> /dev/null
- type node &> /dev/null
- type go &> /dev/null
- type poetry &> /dev/null
- '[ -n "$GOBIN" ]'
- '[ -n "$GOROOT" ]'
setup:
run: once
cmds:
- task: :install:software:brew
- task: prereqs
- task: register:env
vars:
ENV_GOBIN: '{{.ENV_GOBIN}}'
ENV_GOROOT: '{{.ENV_GOROOT}}'
ENV_PATH: '{{.ENV_PATH}}'
- task: setup:start
env:
GOBIN:
sh: cat '{{.ENV_GOBIN}}'
GOROOT:
sh: cat '{{.ENV_GOROOT}}'
PATH:
sh: cat '{{.ENV_PATH}}'
setup:start:
run: once
cmds:
- task: setup:start:ci
- task: setup:start:dev
setup:start:ci:
run: once
cmds:
- task: init
- task: prepare
- task: update
- task: :ci:commit
- task: :ci:synchronize
status:
- '[ -z "$CI" ]'
setup:start:dev:
run: once
cmds:
- task: init
- task: prepare
- task: update
- task: commit
- task: devcontainer
status:
- '[ -n "$CI" ]'
update:
run: once
cmds:
- task: :upstream:{{.PROJECT_TYPE}}
- task: update:git
status:
- '[ "$UPDATE_PROJECT" == "true" ] || [ -f /.devcontainer ]'
update:git:
run: once
cmds:
- task: :git:update
status:
- '[ -n "$CI" ] || [ "{{.DOCKER_BUILDING}}" == "true" ]'
- '[ "$UPDATE_GIT_REPOS" == "false" ] || [ "{{.DOCKER_BUILDING}}" == "true" ]]'