Create Morphir Meeting Agenda #50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Create Morphir Meeting Agenda | |
| on: | |
| schedule: | |
| # Run every 2 weeks on Thursday at 9:00 AM UTC | |
| # This targets every second Thursday starting from the baseline | |
| - cron: "0 9 * * 4" | |
| workflow_dispatch: # Allow manual triggering | |
| jobs: | |
| create-meeting-issue: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Calculate if this is a bi-weekly Thursday | |
| id: check-date | |
| run: | | |
| # Calculate the number of weeks since a reference Thursday (2025-08-07) | |
| REFERENCE_DATE="2025-08-07" | |
| CURRENT_DATE=$(date +%Y-%m-%d) | |
| # Convert dates to epoch seconds | |
| REFERENCE_EPOCH=$(date -d "$REFERENCE_DATE" +%s) | |
| CURRENT_EPOCH=$(date -d "$CURRENT_DATE" +%s) | |
| # Calculate the difference in days | |
| DAYS_DIFF=$(( (CURRENT_EPOCH - REFERENCE_EPOCH) / 86400 )) | |
| # Calculate the number of weeks since reference | |
| WEEKS_SINCE_REFERENCE=$(( DAYS_DIFF / 7 )) | |
| # Check if this is an even number of weeks (bi-weekly schedule) | |
| if [ $(( WEEKS_SINCE_REFERENCE % 2 )) -eq 0 ]; then | |
| echo "should_run=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "should_run=false" >> $GITHUB_OUTPUT | |
| fi | |
| echo "Current date: $CURRENT_DATE" | |
| echo "Reference date: $REFERENCE_DATE" | |
| echo "Weeks since reference: $WEEKS_SINCE_REFERENCE" | |
| echo "Should run: $([ $(( WEEKS_SINCE_REFERENCE % 2 )) -eq 0 ] && echo true || echo false)" | |
| - name: Get meeting date | |
| if: steps.check-date.outputs.should_run == 'true' || github.event_name == 'workflow_dispatch' | |
| id: meeting-date | |
| run: | | |
| # Get the date for the upcoming Thursday (or today if today is Thursday) | |
| CURRENT_DAY=$(date +%u) # 1=Monday, 7=Sunday | |
| DAYS_TO_THURSDAY=$(( (4 - CURRENT_DAY + 7) % 7 )) | |
| if [ $DAYS_TO_THURSDAY -eq 0 ]; then | |
| # Today is Thursday | |
| MEETING_DATE=$(date +%Y-%m-%d) | |
| else | |
| # Calculate next Thursday | |
| MEETING_DATE=$(date -d "+${DAYS_TO_THURSDAY} days" +%Y-%m-%d) | |
| fi | |
| # Format dates for the issue | |
| FORMATTED_DATE=$(date -d "$MEETING_DATE" +"%d %b %Y") # e.g., "07 Aug 2025" | |
| SHORT_DATE=$(date -d "$MEETING_DATE" +"%Y-%m-%d") # e.g., "2025-08-07" | |
| echo "meeting_date=$MEETING_DATE" >> $GITHUB_OUTPUT | |
| echo "formatted_date=$FORMATTED_DATE" >> $GITHUB_OUTPUT | |
| echo "short_date=$SHORT_DATE" >> $GITHUB_OUTPUT | |
| echo "Meeting date: $MEETING_DATE" | |
| echo "Formatted: $FORMATTED_DATE" | |
| echo "Short: $SHORT_DATE" | |
| - name: Create issue from template | |
| if: steps.check-date.outputs.should_run == 'true' || github.event_name == 'workflow_dispatch' | |
| id: create-issue | |
| uses: peter-evans/create-issue-from-file@v6 | |
| with: | |
| title: "${{ steps.meeting-date.outputs.short_date }} (${{ steps.meeting-date.outputs.formatted_date }}) - Morphir Project Meeting" | |
| content-filepath: .github/ISSUE_TEMPLATE/Meeting.md | |
| labels: | | |
| meeting | |
| agenda | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Update meeting date in issue | |
| if: steps.check-date.outputs.should_run == 'true' || github.event_name == 'workflow_dispatch' | |
| run: | | |
| ISSUE_NUMBER="${{ steps.create-issue.outputs.issue-number }}" | |
| if [ -z "$ISSUE_NUMBER" ]; then | |
| echo "Failed to get issue number from create issue step." | |
| exit 1 | |
| fi | |
| # Update the issue body to replace the placeholder date | |
| MEETING_DATE_FORMATTED=$(date -d "${{ steps.meeting-date.outputs.meeting_date }}" +"%A %d %b %Y") | |
| # Get current issue body | |
| CURRENT_BODY=$(gh issue view $ISSUE_NUMBER --json body --jq '.body') | |
| # Replace the placeholder date | |
| UPDATED_BODY=$(echo "$CURRENT_BODY" | sed "s/Thursday DD MMM yyyy/$MEETING_DATE_FORMATTED/g") | |
| # Update the issue | |
| gh issue edit $ISSUE_NUMBER --body "$UPDATED_BODY" | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |