# yaml-language-server: $schema=https://taskfile.dev/schema.json version: '3' set: [ e, pipefail, u, x ] env: NPM_TAG: sh: | tag=dev if [[ "$GITHUB_REF_NAME" = "v*" ]]; then tag=latest fi echo "$tag" tasks: base:release: desc: "Весь процесс борки и выпуска" cmds: - task: base:info - task: base:npm:auth - task: base:npm:audit - task: base:npm:install - task: base:npm:build - task: base:npm:version - task: base:npm:unpublish - task: base:npm:publish base:info: desc: "Информация" cmds: - echo "GITHUB_REF_NAME=$GITHUB_REF_NAME" - echo "NPM_TAG=$NPM_TAG" - echo "PWD=$PWD" base:npm:auth: desc: "Настройка аутентификации в npm registry" cmds: - echo "$NPM_CONFIG_REGISTRY_AUTH" >> .npmrc - cat .npmrc base:npm:audit: desc: "Аудит проекта на безопасность" cmds: - npm audit --audit-level critical base:npm:install: desc: "Установка зависимостей" cmds: - npm ci --prefer-offline --no-audit --no-fund --no-update-notifier --ignore-scripts base:npm:build: desc: "Сборка" cmds: - npm run build base:npm:version: desc: "Корректировка версии c учётом npm тега" if: '[ "$NPM_TAG" != "latest" ]' cmd: | echo "[INFO] Тег npm пакета: $NPM_TAG" version=$(npm pkg get version | tr -d '"') version="$version-$NPM_TAG" npm pkg set "version=$version" echo "[INFO] Задана версия пакета: $version" base:npm:unpublish: desc: "Удаление текущей версии пакета c учётом npm тега" if: '[ "$NPM_TAG" != "latest" ]' cmd: | name=$(npm pkg get name | tr -d '"') version=$(npm pkg get version | tr -d '"') #npm dist-tag rm "$name" "$NPM_TAG" || true npm unpublish "$name@$version" --force || true base:npm:publish: desc: "Публикация" cmd: | npm publish --tag "$NPM_TAG" --verbose