view modules/apt/.github/workflows/auto_release.yml @ 465:f6304a8e2adc

Try to fix last day of month HTTP LogWatch LogWatch runs for yesterday's data. And we rotate and zip web logs on the 1st of the month. So on the 1st, when generating the summary for the last day of the month, we need to look at a gzipped file, not the current or old-unzipped file.
author IBBoard <dev@ibboard.co.uk>
date Sun, 25 Feb 2024 09:56:16 +0000
parents 3fce34f642f1
children
line wrap: on
line source

name: "Auto release"

on:
  workflow_dispatch:

env:
  HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6 
  HONEYCOMB_DATASET: litmus tests
  CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
  auto_release:
    name: "Automatic release prep"
    runs-on: ubuntu-20.04

    steps:
    - name: "Honeycomb: Start recording"
      uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
      with:
        apikey: ${{ env.HONEYCOMB_WRITEKEY }}
        dataset: ${{ env.HONEYCOMB_DATASET }}
        job-status: ${{ job.status }}

    - name: "Honeycomb: start first step"
      run: |
        echo STEP_ID="auto-release" >> $GITHUB_ENV
        echo STEP_START=$(date +%s) >> $GITHUB_ENV

    - name: "Checkout Source"
      if: ${{ github.repository_owner == 'puppetlabs' }}
      uses: actions/checkout@v2
      with:
        fetch-depth: 0
        persist-credentials: false

    - name: "PDK Release prep"
      uses: docker://puppet/iac_release:ci
      with:
        args: 'release prep --force'
      env:
        CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

    - name: "Get Version"
      if: ${{ github.repository_owner == 'puppetlabs' }}
      id: gv
      run: |
        echo "::set-output name=ver::$(jq --raw-output .version metadata.json)"

    - name: "Check if a release is necessary"
      if: ${{ github.repository_owner == 'puppetlabs' }}
      id: check
      run: |
        git diff --quiet CHANGELOG.md && echo "::set-output name=release::false" || echo "::set-output name=release::true"

    - name: "Commit changes"
      if: ${{ github.repository_owner == 'puppetlabs' && steps.check.outputs.release == 'true' }}
      run: |
        git config --local user.email "${{ github.repository_owner }}@users.noreply.github.com"
        git config --local user.name "GitHub Action"
        git add .
        git commit -m "Release prep v${{ steps.gv.outputs.ver }}"

    - name: Create Pull Request
      id: cpr
      uses: puppetlabs/peter-evans-create-pull-request@v3
      if: ${{ github.repository_owner == 'puppetlabs' && steps.check.outputs.release == 'true' }}
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        commit-message: "Release prep v${{ steps.gv.outputs.ver }}"
        branch: "release-prep"
        delete-branch: true
        title: "Release prep v${{ steps.gv.outputs.ver }}"
        body: |
          Automated release-prep through [pdk-templates](https://github.com/puppetlabs/pdk-templates/blob/main/moduleroot/.github/workflows/auto_release.yml.erb) from commit ${{ github.sha }}. 
          Please verify before merging:
          - [ ] last [nightly](https://github.com/${{ github.repository }}/actions/workflows/nightly.yml) run is green
          - [ ] [Changelog](https://github.com/${{ github.repository }}/blob/release-prep/CHANGELOG.md) is readable and has no unlabeled pull requests
          - [ ] Ensure the [changelog](https://github.com/${{ github.repository }}/blob/release-prep/CHANGELOG.md) version and [metadata](https://github.com/${{ github.repository }}/blob/release-prep/metadata.json) version match
        labels: "maintenance"

    - name: PR outputs
      if: ${{ github.repository_owner == 'puppetlabs' && steps.check.outputs.release == 'true' }}
      run: |
        echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
        echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"

    - name: "Honeycomb: Record finish step"
      if: ${{ always() }}
      run: |
        buildevents step $TRACE_ID $STEP_ID $STEP_START 'Finished auto release workflow'