小编Flo*_*mak的帖子

Golang:无法在频道上发送

为什么它不在通道上发送并阻止执行?我怎样才能使这个星座工作,以便我可以向其中发送信号MoneyDive()并继续执行?

package main

import (
    "fmt"
)

type Quack func(ch chan bool)

type DagobertDuck struct {
    quack Quack
}

func (self *DagobertDuck) MoneyDive() {
    ch := make(chan bool)
    self.quack(ch)
    b := <-ch
    if b {
        fmt.Println("true")
    } else {
        fmt.Println("false")
    }
}

func mockQuack(ch chan bool) {
    fmt.Println("mockQuack start")
    ch <- true
    fmt.Println("mockQuack done")
}

func main() {
    dd := DagobertDuck{quack: mockQuack}
    dd.MoneyDive()
}
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/1omlb7u6-A

concurrency channel go

1
推荐指数
1
解决办法
3464
查看次数

从 PowerShell 发布 PipelineArtifact

有没有办法从 PowerShell 脚本发布 Pipeline Artefact ?

我想避免创建额外的管道任务来发布文件。

代替:

      - task: PublishPipelineArtifact@1
        displayName: 'publish azuredeploy.parameters.json'
        inputs:
          targetPath: $(System.DefaultWorkingDirectory)/work
          artifactName: azuredeploy parameters
Run Code Online (Sandbox Code Playgroud)

我宁愿做这样的事情:

      - task: PowerShell@2
        displayName: 'replace ARM parameters'
        inputs:
          targetType: inline
          pwsh: true
          script: |
              # input
              $manifest = ReadObject "work/manifest.json"

              # process
              ReplaceArmTemplateParameters $manifest.modules

              # output
              PublishPipelineArtefact -targetPath "work/manifest.json" -artefactName "azuredeploy-parameters"


Run Code Online (Sandbox Code Playgroud)

也许构建代理提供了一个可以在PowerShell@2任务中使用的 API,例如:Agent.Plugins.PipelineArtifact.PublishPipelineArtifactTask::PipelineArtifactTaskPluginBaseV1

有任何想法吗?

(ps:这个问题好像有点过时了)

powershell azure-devops azure-pipelines

1
推荐指数
1
解决办法
1917
查看次数