Skip to content

Commit

Permalink
🤖 Init update.yml workflow (#5448)
Browse files Browse the repository at this point in the history
  • Loading branch information
conda-bot committed Aug 8, 2024
1 parent 0a9a8a7 commit 55b6f48
Show file tree
Hide file tree
Showing 2 changed files with 174 additions and 0 deletions.
50 changes: 50 additions & 0 deletions .github/template-files/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
conda/governance:
# [required] community files
- CODE_OF_CONDUCT.md

conda/infrastructure:
# [required] general workflows
- .github/workflows/cla.yml
- .github/workflows/update.yml

# [optional] to include repo in https://github.com/orgs/conda/projects/2
- .github/workflows/issues.yml
- .github/workflows/labels.yml
- .github/workflows/project.yml

# [optional] stale bot workflows
- .github/workflows/stale.yml
- .github/workflows/lock.yml

# [optional] general processes for the conda org
- src: templates/HOW_WE_USE_GITHUB.md
dst: HOW_WE_USE_GITHUB.md

# [optional] standard issue templates
- src: templates/issues/bug.yml
dst: .github/ISSUE_TEMPLATE/0_bug.yml

- src: templates/issues/feature.yml
dst: .github/ISSUE_TEMPLATE/1_feature.yml

- src: templates/issues/documentation.yml
dst: .github/ISSUE_TEMPLATE/2_documentation.yml

- src: templates/issues/epic.yml
dst: .github/ISSUE_TEMPLATE/epic.yml

# [optional] standard PR template
# - src: templates/pull_requests/news_tests_docs.md
# dst: .github/template-files/templates/pull_request_template_details.md
- src: templates/pull_requests/base.md
dst: .github/PULL_REQUEST_TEMPLATE.md

# [optional] rever release files
# - src: templates/releases/RELEASE.md
# dst: RELEASE.md
# with:
# placeholder: YY.M
# - src: templates/releases/rever.xsh
# dst: rever.xsh
# - src: templates/releases/TEMPLATE
# dst: news/TEMPLATE
124 changes: 124 additions & 0 deletions .github/workflows/update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: Update Repository

on:
# every Sunday at 00:36 UTC
# https://crontab.guru/#36_2_*_*_0
schedule:
- cron: 36 2 * * 0

workflow_dispatch:

issue_comment:
types:
- created

jobs:
update:
if: >-
!github.event.repository.fork
&& (
github.event_name == 'schedule'
|| github.event_name == 'workflow_dispatch'
|| (
github.event_name == 'issue_comment'
&& github.event.issue.pull_request
&& (
github.event.comment.body == '@conda-bot render'
|| github.event.comment.body == '@conda-bot recreate'
)
)
)
runs-on: ubuntu-latest
steps:
- if: github.event_name == 'issue_comment'
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
comment-id: ${{ github.event.comment.id }}
reactions: eyes
reactions-edit-mode: replace
token: ${{ secrets.SYNC_TOKEN }}

- if: github.event.comment.body == '@conda-bot render'
name: Configure git origin
run: |
echo REPOSITORY=$(curl --silent ${{ github.event.issue.pull_request.url }} | jq --raw-output '.head.repo.full_name') >> $GITHUB_ENV
echo REF=$(curl --silent ${{ github.event.issue.pull_request.url }} | jq --raw-output '.head.ref') >> $GITHUB_ENV
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
repository: ${{ env.REPOSITORY || github.repository }}
ref: ${{ env.REF || '' }}
token: ${{ secrets.SYNC_TOKEN }}

- name: Configure git user
run: |
git config --global user.name 'Conda Bot'
git config --global user.email '18747875+conda-bot@users.noreply.github.com'
- uses: conda/actions/combine-durations@15f883f14f4232f83658e3609c3316d58905138f # v24.8.0
id: durations
continue-on-error: true

- uses: conda/actions/template-files@15f883f14f4232f83658e3609c3316d58905138f # v24.8.0
id: templates
continue-on-error: true

- name: Commit changes
# no-op if there are no updates
continue-on-error: true
run: |
git add .
git commit --message "🤖 updated file(s)"
- if: github.event.comment.body != '@conda-bot render'
name: Create fork
# no-op if the repository is already forked
run: echo FORK=$(gh repo fork --clone=false --default-branch-only 2>&1 | awk '{print $1}') >> $GITHUB_ENV
env:
GH_TOKEN: ${{ secrets.SYNC_TOKEN }}

- if: github.event.comment.body != '@conda-bot render'
id: create
# no-op if no commits were made
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0
with:
push-to-fork: ${{ env.FORK }}
token: ${{ secrets.SYNC_TOKEN }}
branch: update
delete-branch: true
title: 🤖 Update infrastructure file(s)
body: |
[update.yml]: ${{ github.server_url }}/${{ github.repository }}/blob/main/.github/workflows/update.yml
Your friendly repository updater.
${{ steps.durations.outputs.summary }}
${{ steps.templates.outputs.summary }}
This PR was triggered by @${{ github.triggering_actor }} via ${{ github.event_name }}.
<details>
<summary>Commands</summary>
Trigger actions by commenting on this PR:
- `@conda-bot render` will run rendering workflows and commit and push any changes to this PR
- `@conda-bot recreate` will recreate this PR, overwriting any edits that have been made to it
</details>
###### Auto-generated by the [`update.yml`][update.yml] workflow, see ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}.
- if: github.event.comment.body == '@conda-bot render'
id: update
name: Push changes
run: git push --force-with-lease

- if: always() && github.event_name == 'issue_comment'
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
comment-id: ${{ github.event.comment.id }}
reactions: ${{ (steps.create.conclusion == 'success' || steps.update.conclusion == 'success') && 'hooray' || 'confused' }}
reactions-edit-mode: replace
token: ${{ secrets.SYNC_TOKEN }}

0 comments on commit 55b6f48

Please sign in to comment.