name: Get tools new versions on: schedule: - cron: '0 8 * * THU' workflow_dispatch: defaults: run: shell: pwsh jobs: find-new-tool-versions: strategy: fail-fast: false matrix: tool: - name: 'Xamarin' image: 'https://avatars.githubusercontent.com/u/790012?s=200&v=4' - name: 'Python' image: 'https://avatars.githubusercontent.com/u/1525981?s=200&v=4' - name: 'PyPy' image: 'https://avatars.githubusercontent.com/u/318667?s=200&v=4' name: 'Searching for new versions of ${{ matrix.tool.name }}' runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - id: get-new-tool-versions name: Get new tool versions run: echo "::set-output name=versions-output::$(./get-new-tool-versions/verify-new-tool-version-added-to-image.ps1 -ToolName ${{ matrix.tool.name }})" - name: Check versions if: steps.get-new-tool-versions.outputs.versions-output == '' run: Write-Host "No new versions found" - uses: ./.github/actions/send-slack-notification name: Send Slack notification if: steps.get-new-tool-versions.outputs.versions-output != '' with: url: ${{ secrets.SLACK_CHANNEL_URL }} tool-name: '${{ matrix.tool.name }}' tool-version: ${{ steps.get-new-tool-versions.outputs.versions-output }} image-url: '${{ matrix.tool.image }}' add-to-toolset-flag: '-AddToToolsetFlag' check_build: name: Check build for failures runs-on: ubuntu-latest needs: [find-new-tool-versions] if: failure() steps: - uses: actions/checkout@v2 - id: get-failed-jobs name: Get failed jobs run: | $jobs_url = "$env:GITHUB_API_URL/repos/$env:GITHUB_REPOSITORY/actions/runs/$env:GITHUB_RUN_ID/jobs" $failedJobs = (Invoke-RestMethod -Uri $jobs_url).jobs | Where-Object conclusion -eq "failure" | ForEach-Object {"\n\t" + $_.name.split(" ")[-1] + ": $($_.html_url)"} echo "::set-output name=failed-jobs::$failedJobs" - uses: ./.github/actions/send-slack-notification name: Send Slack notification about failure with: url: ${{ secrets.SLACK_CHANNEL_URL }} tool-name: 'Tool name' pipeline-url: '$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY/actions/runs/$env:GITHUB_RUN_ID' text: "Missing toolset tool versions checker pipeline has failed jobs:/n/t${{ steps.get-failed-jobs.outputs.failed-jobs }}"