From 994af73c23c5fcbf65c9564f604da607366e2ee2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gui=20=E2=9A=A1=EF=B8=8F=20Guilherme=20Ferreira?= Date: Wed, 25 Oct 2023 10:37:24 +0100 Subject: [PATCH] Create GH Workflow to generate Metrics Reports (#452) * chore: create metrics.yml * chore: upload an artifact instead of creating an issue * chore: accept manually input dates --- .github/workflows/metrics.yml | 89 +++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 .github/workflows/metrics.yml diff --git a/.github/workflows/metrics.yml b/.github/workflows/metrics.yml new file mode 100644 index 000000000..a0aae7175 --- /dev/null +++ b/.github/workflows/metrics.yml @@ -0,0 +1,89 @@ +name: Monthly Metrics +on: + workflow_dispatch: + inputs: + dates: + required: false + schedule: + - cron: '3 2 1 * *' + +permissions: + issues: write + pull-requests: read + +jobs: + run: + name: Calculate Metrics + runs-on: ubuntu-latest + steps: + + - name: Get dates for last month + id: get-dates + shell: bash + run: | + # Calculate the first day of the previous month + first_day=$(date -d "last month" +%Y-%m-01) + # Calculate the last day of the previous month + last_day=$(date -d "$first_day +1 month -1 day" +%Y-%m-%d) + #Set an environment variable with the date range + echo "$first_day..$last_day" + echo "last_month=$first_day..$last_day" >> "$GITHUB_ENV" + + - name: Use input dates + if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.dates != '' }} + shell: bash + run: | + echo "${{github.event.inputs.dates}}" + echo "last_month=${{github.event.inputs.dates}}" >> "$GITHUB_ENV" + + - name: Run issue-metrics tool for items opened last month + id: opened-metrics + uses: github/issue-metrics@v2 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SEARCH_QUERY: 'repo:farfetch/kafkaflow created:${{ env.last_month }} -reason:"not planned"' + + - name: Upload for opened items + uses: actions/upload-artifact@v3 + with: + name: items-opened + path: ./issue_metrics.md + + - name: Run issue-metrics tool for items closed last month + id: closed-metrics + uses: github/issue-metrics@v2 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SEARCH_QUERY: 'repo:farfetch/kafkaflow closed:${{ env.last_month }} -reason:"not planned"' + + - name: Upload for closed items + uses: actions/upload-artifact@v3 + with: + name: items-closed + path: ./issue_metrics.md + + - name: Run issue-metrics tool for discussions opened last month + id: opened-discussions-metrics + uses: github/issue-metrics@v2 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SEARCH_QUERY: 'repo:farfetch/kafkaflow type:discussions created:${{ env.last_month }} -reason:"not planned"' + + - name: Upload for opened discussions + uses: actions/upload-artifact@v3 + with: + name: discussions-opened + path: ./issue_metrics.md + + - name: Run issue-metrics tool for discussions closed last month + id: closed-discussions-metrics + uses: github/issue-metrics@v2 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SEARCH_QUERY: 'repo:farfetch/kafkaflow type:discussions closed:${{ env.last_month }} -reason:"not planned"' + + - name: Upload for closed discussions + uses: actions/upload-artifact@v3 + with: + name: discussions-closed + path: ./issue_metrics.md \ No newline at end of file