steps:
  - script: 'cargo test --all'
    displayName: Cargo Test All
    condition:  and(succeeded(), contains(variables['Build.SourceBranch'], 'refs/tags/'), eq(variables['CI_JOB'], 'release' ))
  - script: 'cargo build --release'
    displayName: Build Release
    condition:  and(succeeded(), contains(variables['Build.SourceBranch'], 'refs/tags/'), eq(variables['CI_JOB'], 'release' ))
  - script: |
      MY_TAG="$(Build.SourceBranch)"
      MY_TAG=${MY_TAG#refs/tags/}
      echo $MY_TAG
      echo "##vso[task.setvariable variable=build.my_tag]$MY_TAG"
      echo "##vso[task.setvariable variable=build.platform]$PLATFORM"
    displayName: "Create my tag variable"
    condition:  and(succeeded(), contains(variables['Build.SourceBranch'], 'refs/tags/'), eq(variables['CI_JOB'], 'release' ))
  - task: CopyFiles@2
    displayName: Copy assets
    condition:  and(succeeded(), contains(variables['Build.SourceBranch'], 'refs/tags/'), eq(variables['CI_JOB'], 'release' ))
    inputs:
      sourceFolder: '$(Build.SourcesDirectory)/target/release'
      contents: 'grin'
      targetFolder: '$(Build.BinariesDirectory)/grin'
  - task: ArchiveFiles@2
    displayName: Gather assets
    condition:  and(succeeded(), contains(variables['Build.SourceBranch'], 'refs/tags/'), eq(variables['CI_JOB'], 'release' ))
    inputs:
      rootFolderOrFile: '$(Build.BinariesDirectory)/grin'
      archiveType: 'tar'
      tarCompression: 'gz'
      archiveFile: '$(Build.ArtifactStagingDirectory)/grin-$(build.my_tag)-$(build.platform).tar.gz'
  - script: |
      openssl sha256 $(Build.ArtifactStagingDirectory)/grin-$(build.my_tag)-$(build.platform).tar.gz > $(Build.ArtifactStagingDirectory)/grin-$(build.my_tag)-$(build.platform)-sha256sum.txt
    displayName: Create Checksum
    condition:  and(succeeded(), contains(variables['Build.SourceBranch'], 'refs/tags/'), eq(variables['CI_JOB'], 'release' ))
  - task: GithubRelease@0
    displayName: Github release
    condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'), eq(variables['CI_JOB'], 'release' ))
    inputs:
      gitHubConnection: 'ignopeverell'
      repositoryName: 'mimblewimble/grin'
      action: 'edit'
      target: '$(build.sourceVersion)'
      tagSource: 'manual'
      tag: '$(build.my_tag)'
      assets: |
        $(Build.ArtifactStagingDirectory)/grin-$(build.my_tag)-$(build.platform).tar.gz
        $(Build.ArtifactStagingDirectory)/grin-$(build.my_tag)-$(build.platform)-sha256sum.txt
      title: '$(build.my_tag)'
      assetUploadMode: 'replace'
      addChangeLog: true