Есть ли возможность установить пользовательское условие, которое будет проверять, не выполнено ли предыдущее задание ИЛИ истекло ли время ожидания?
В настоящее время я использую Only when a previous task has failed
, который работает, когда задача не выполняется. Если время выполнения задачи истекло, оно не считается ошибкой и пропускается.
Тогда мне нужно пользовательское условие, что-то вроде or(failed(), timedout())
. Возможно ли это?
Контекст
У нас есть эта периодически возникающая проблема с задачей npm install
, для которой мы не можем найти причину, но она решается с помощью следующей работы запустить, поэтому мы искали функциональность повтора. Частичное решение состояло в том, чтобы дублировать npm install
и использовать опцию управления, но она не работала для всех случаев «сбоя». Решение, предоставленное @Levi Lu-MSFT, похоже, работает для всех наших потребностей (оно повторяет попытку), но, к сожалению, оно не решает проблему, повторное задание 2-й строки также не удается.
Примеры ошибок:
20741 error stack: 'Error: EPERM: operation not permitted, unlink \'C:\\agent2\\_work\\4\\s\\node_modules\\.staging\\typescript-4440ace9\\lib\\tsc.js\'',
20741 error errno: -4048,
20741 error code: 'EPERM',
20741 error syscall: 'unlink',
20741 error path: 'C:\\agent2\\_work\\4\\s\\node_modules\\.staging\\typescript-4440ace9\\lib\\tsc.js',
20741 error parent: 's' }
20742 error The operation was rejected by your operating system.
20742 error It's possible that the file was already in use (by a text editor or antivirus),
20742 error or that you lack permissions to access it.
или
21518 verbose stack SyntaxError: Unexpected end of JSON input while parsing near '...ter/doc/TypeScript%20'
21518 verbose stack at JSON.parse (<anonymous>)
21518 verbose stack at parseJson (C:\agent2\_work\_tool\node\8.17.0\x64\node_modules\npm\node_modules\json-parse-better-errors\index.js:7:17)
21518 verbose stack at consumeBody.call.then.buffer (C:\agent2\_work\_tool\node\8.17.0\x64\node_modules\npm\node_modules\node-fetch-npm\src\body.js:96:50)
21518 verbose stack at <anonymous>
21518 verbose stack at process._tickCallback (internal/process/next_tick.js:189:7)
21519 verbose cwd C:\agent2\_work\7\s
21520 verbose Windows_NT 10.0.14393
21521 verbose argv "C:\\agent2\\_work\\_tool\\node\\8.17.0\\x64\\node.exe" "C:\\agent2\\_work\\_tool\\node\\8.17.0\\x64\\node_modules\\npm\\bin\\npm-cli.js" "install"
21522 verbose node v8.17.0
21523 verbose npm v6.13.4
21524 error Unexpected end of JSON input while parsing near '...ter/doc/TypeScript%20'
21525 verbose exit [ 1, true ]
Иногда также время вышло