From 73086fece9962e3197d9acaac0adb5a928bb4f7f Mon Sep 17 00:00:00 2001 From: Kristina Devochko Date: Sun, 14 Jul 2024 12:22:53 +0200 Subject: [PATCH 1/4] feat: add reusable workflow for Green Scraper Signed-off-by: Kristina Devochko --- ...generate-event-list-with-green-scraper.yml | 24 +++++++++++ .github/workflows/green-talks-scraper.yml | 40 ++++++++++--------- green-talks-scraper/talks.md | 5 +++ 3 files changed, 51 insertions(+), 18 deletions(-) create mode 100644 .github/workflows/generate-event-list-with-green-scraper.yml create mode 100644 green-talks-scraper/talks.md diff --git a/.github/workflows/generate-event-list-with-green-scraper.yml b/.github/workflows/generate-event-list-with-green-scraper.yml new file mode 100644 index 0000000..0164760 --- /dev/null +++ b/.github/workflows/generate-event-list-with-green-scraper.yml @@ -0,0 +1,24 @@ +name: Green Scraper event list generation + +on: + workflow_dispatch: + push: + branches: + - main + paths: + - '.github/workflows/green-talks-scraper.yml' + - '.github/workflows/generate-event-list-with-green-scraper.yml' + - 'green-talks-scraper/*' + - '!green-talks-scraper/README.md' + +jobs: + call-green-scraper-workflow: + permissions: + contents: read + pull-requests: write + uses: ./.github/workflows/green-talks-scraper.yml + with: + output-path: 'green-talks-scraper/talks.md' + repository: 'cncf-tags/tag-env-tooling' + secrets: + token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/green-talks-scraper.yml b/.github/workflows/green-talks-scraper.yml index 4252426..e5eef1a 100644 --- a/.github/workflows/green-talks-scraper.yml +++ b/.github/workflows/green-talks-scraper.yml @@ -1,13 +1,17 @@ name: Green Talks Scraper on: - push: - branches: - - main - paths: - - '.github/workflows/green-talks-scraper.yml' - - 'green-talks-scraper/*' - - '!green-talks-scraper/README.md' + workflow_call: + inputs: + output-path: + required: true + type: string + repository: + required: true + type: string + secrets: + token: + required: true jobs: scrape: @@ -19,29 +23,29 @@ jobs: with: persist-credentials: false - - name: Prepend line to talks.md - run: echo "### An automatically generated list of environmental sustainability-related talks at The Linux Foundation events" > green-talks-scraper/talks.md + - name: Prepend line to the output file + run: echo "### An automatically generated list of environmental sustainability-related talks at The Linux Foundation events" > ${{ inputs.output-path }} - - name: Run Scraper Script + - name: Run Green Scraper tool run: | chmod +x green-talks-scraper/scraper.sh - ./green-talks-scraper/scraper.sh >> green-talks-scraper/talks.md + ./green-talks-scraper/scraper.sh >> ${{ inputs.output-path }} - - name: Commit file + - name: Create pull request with updated event list run: | - # Check if "talks.md" has been modified - if git diff --name-only | grep "talks.md" || git ls-files --others --exclude-standard | grep "talks.md"; then + # Check if ${{ inputs.output-path }} has been modified + if git diff --name-only | grep ${{ inputs.output-path }} || git ls-files --others --exclude-standard | grep ${{ inputs.output-path }}; then BRANCH_NAME="update-talks-$(date +'%Y%m%d%H%M')" git config --local user.email "workflow@green-talks-scraper.com" git config --local user.name "green-talks-scraper-workflow" git checkout -b $BRANCH_NAME - git add green-talks-scraper/talks.md - git commit -m "Update the green talks list [skip actions]" - git remote set-url origin https://${GH_TOKEN}@github.com/cncf-tags/tag-env-tooling.git + git add ${{ inputs.output-path }} + git commit -s -m "docs: update event list with Green Scraper [skip actions]" + git remote set-url origin https://${GH_TOKEN}@github.com/${{ inputs.repository }}.git git push --set-upstream origin $BRANCH_NAME -f gh pr create --base main --head $BRANCH_NAME --title "Update the list of talks" --body "Update the list of talks" else echo "The list of talks is up to date" fi env: - GH_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} + GH_TOKEN: ${{ secrets.token }} diff --git a/green-talks-scraper/talks.md b/green-talks-scraper/talks.md new file mode 100644 index 0000000..23a1e83 --- /dev/null +++ b/green-talks-scraper/talks.md @@ -0,0 +1,5 @@ +--- +title: Overview of sustainability-related events +description: This list provides overview of events that include content related to cloud native environmental sustainability. The list is auto-generated and continuously updated by Green Scraper tool. +--- + From 8c8ddc5bfdbaf0f6f2cbd99ec854db1a5b853497 Mon Sep 17 00:00:00 2001 From: Kristina Devochko Date: Sun, 14 Jul 2024 12:28:30 +0200 Subject: [PATCH 2/4] feat: trigger WF on PR Signed-off-by: Kristina Devochko --- .../workflows/generate-event-list-with-green-scraper.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/generate-event-list-with-green-scraper.yml b/.github/workflows/generate-event-list-with-green-scraper.yml index 0164760..ebb0c8b 100644 --- a/.github/workflows/generate-event-list-with-green-scraper.yml +++ b/.github/workflows/generate-event-list-with-green-scraper.yml @@ -10,6 +10,12 @@ on: - '.github/workflows/generate-event-list-with-green-scraper.yml' - 'green-talks-scraper/*' - '!green-talks-scraper/README.md' + pull_request: + paths: + - '.github/workflows/green-talks-scraper.yml' + - '.github/workflows/generate-event-list-with-green-scraper.yml' + - 'green-talks-scraper/*' + - '!green-talks-scraper/README.md' jobs: call-green-scraper-workflow: From 29b9aace882e303ebcba6e834646ea09fc5195fd Mon Sep 17 00:00:00 2001 From: Kristina Devochko Date: Sun, 14 Jul 2024 12:34:50 +0200 Subject: [PATCH 3/4] fix: use token of the repo to commit to Signed-off-by: Kristina Devochko --- .github/workflows/green-talks-scraper.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/green-talks-scraper.yml b/.github/workflows/green-talks-scraper.yml index e5eef1a..7022c4d 100644 --- a/.github/workflows/green-talks-scraper.yml +++ b/.github/workflows/green-talks-scraper.yml @@ -41,7 +41,7 @@ jobs: git checkout -b $BRANCH_NAME git add ${{ inputs.output-path }} git commit -s -m "docs: update event list with Green Scraper [skip actions]" - git remote set-url origin https://${GH_TOKEN}@github.com/${{ inputs.repository }}.git + git remote set-url origin https://${{ secrets.token }}@github.com/${{ inputs.repository }}.git git push --set-upstream origin $BRANCH_NAME -f gh pr create --base main --head $BRANCH_NAME --title "Update the list of talks" --body "Update the list of talks" else From 064582d65c2fe4be552bd88e5a2e20a60967a9ed Mon Sep 17 00:00:00 2001 From: Kristina Devochko Date: Sun, 8 Sep 2024 12:49:20 +0200 Subject: [PATCH 4/4] fix: green scraper workflow token name Signed-off-by: Kristina Devochko --- .github/workflows/generate-event-list-with-green-scraper.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/generate-event-list-with-green-scraper.yml b/.github/workflows/generate-event-list-with-green-scraper.yml index ebb0c8b..1b734fb 100644 --- a/.github/workflows/generate-event-list-with-green-scraper.yml +++ b/.github/workflows/generate-event-list-with-green-scraper.yml @@ -27,4 +27,4 @@ jobs: output-path: 'green-talks-scraper/talks.md' repository: 'cncf-tags/tag-env-tooling' secrets: - token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + token: ${{ secrets.GREENSCRAPER_WORKFLOW_TOKEN }} \ No newline at end of file