Merge pull request #36 from nikita-bykov/move-get-go-versions-workflow
Move get-go-versions pipeline from Azure DevOpspull/38/head 1.16.8-1220319069
						commit
						868a8c05e8
					
				@ -0,0 +1,96 @@
 | 
			
		||||
name: Get Go versions
 | 
			
		||||
on:
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: '0 3,15 * * *'
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  TOOL_NAME: "Go"
 | 
			
		||||
defaults:
 | 
			
		||||
  run:
 | 
			
		||||
    shell: pwsh
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  find_new_versions:
 | 
			
		||||
    name: Find new versions
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    outputs:
 | 
			
		||||
      versions_output: ${{ steps.Get_new_versions.outputs.TOOL_VERSIONS }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: true
 | 
			
		||||
 | 
			
		||||
      - id: Get_new_versions
 | 
			
		||||
        name: Get new versions
 | 
			
		||||
        run: ./helpers/get-new-tool-versions/get-new-tool-versions.ps1 -ToolName ${{ env.TOOL_NAME }}
 | 
			
		||||
 | 
			
		||||
  check_new_versions:
 | 
			
		||||
    name: Check new versions
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    needs: find_new_versions
 | 
			
		||||
    env:
 | 
			
		||||
      TOOL_VERSIONS: ${{needs.find_new_versions.outputs.versions_output}}
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: true
 | 
			
		||||
 | 
			
		||||
      - name: Check Versions
 | 
			
		||||
        if: env.TOOL_VERSIONS == ''
 | 
			
		||||
        run: |
 | 
			
		||||
          Write-Host "No new versions were found"
 | 
			
		||||
          Import-Module "./helpers/github/github-api.psm1"
 | 
			
		||||
          $gitHubApi = Get-GitHubApi -RepositoryFullName "$env:GITHUB_REPOSITORY" `
 | 
			
		||||
                                     -AccessToken "${{ secrets.PERSONAL_TOKEN }}"
 | 
			
		||||
 | 
			
		||||
          $gitHubApi.CancelWorkflow("$env:GITHUB_RUN_ID")
 | 
			
		||||
          Start-Sleep -Seconds 60
 | 
			
		||||
 | 
			
		||||
      - name: Send Slack notification
 | 
			
		||||
        run: |
 | 
			
		||||
          $pipelineUrl = "$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY/actions/runs/$env:GITHUB_RUN_ID"
 | 
			
		||||
          $message = "The following versions of '${{ env.TOOL_NAME }}' are available to upload: ${{ env.TOOL_VERSIONS }}\nLink to the pipeline: $pipelineUrl"
 | 
			
		||||
          ./helpers/get-new-tool-versions/send-slack-notification.ps1 -Url "${{ secrets.SLACK_CHANNEL_URL }}" `
 | 
			
		||||
                                                                      -ToolName "${{ env.TOOL_NAME }}" `
 | 
			
		||||
                                                                      -ImageUrl "https://golang.org/lib/godoc/images/footer-gopher.jpg" `
 | 
			
		||||
                                                                      -Text "$message"
 | 
			
		||||
  trigger_builds:
 | 
			
		||||
    name: Trigger builds
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    needs: [find_new_versions, check_new_versions]
 | 
			
		||||
    env:
 | 
			
		||||
      TOOL_VERSIONS: ${{needs.find_new_versions.outputs.versions_output}}
 | 
			
		||||
    environment: Get Available Tools Versions - Publishing Approval
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: true
 | 
			
		||||
 | 
			
		||||
      - name: Trigger "Build go packages" workflow
 | 
			
		||||
        run:
 | 
			
		||||
          ./helpers/github/run-ci-builds.ps1 -RepositoryFullName "$env:GITHUB_REPOSITORY" `
 | 
			
		||||
                                             -AccessToken "${{ secrets.PERSONAL_TOKEN }}" `
 | 
			
		||||
                                             -WorkflowFileName "build-go-packages.yml" `
 | 
			
		||||
                                             -WorkflowDispatchRef "main" `
 | 
			
		||||
                                             -ToolVersions "${{ env.TOOL_VERSIONS }}" `
 | 
			
		||||
                                             -PublishReleases "true"
 | 
			
		||||
 | 
			
		||||
  check_build:
 | 
			
		||||
    name: Check build for failures 
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    needs: [find_new_versions, check_new_versions, trigger_builds]
 | 
			
		||||
    if: failure()
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: true
 | 
			
		||||
 | 
			
		||||
      - name: Send Slack notification if build fails
 | 
			
		||||
        run: |
 | 
			
		||||
          $pipelineUrl = "$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY/actions/runs/$env:GITHUB_RUN_ID"
 | 
			
		||||
          $message = "The build of the '${{ env.TOOL_NAME }}' detection pipeline failed :progress-error:\nLink to the pipeline: $pipelineUrl"
 | 
			
		||||
          ./helpers/get-new-tool-versions/send-slack-notification.ps1 -Url "${{ secrets.SLACK_CHANNEL_URL }}" `
 | 
			
		||||
                                                                      -ToolName "${{ env.TOOL_NAME }}" `
 | 
			
		||||
                                                                      -Text "$message" `
 | 
			
		||||
                                                                      -ImageUrl "https://golang.org/lib/godoc/images/footer-gopher.jpg"
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
Subproject commit 4b0fa42d9972d1f51dd26ca96e03987d374a1d7a
 | 
			
		||||
Subproject commit 1eaa091b6531cad000ee0c4585bfa97d3476b028
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue