From 1ce0f14de268d9678c785eb6a9b83a1934da0de4 Mon Sep 17 00:00:00 2001 From: nigeljamesstevenson <105309450+nigeljamesstevenson@users.noreply.github.com> Date: Sat, 11 May 2024 21:14:06 +0100 Subject: [PATCH] Update/workflow for rest api slack notifications (#47278) * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-release-highlight-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update README.md * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * Update test-assistant-api-rest-change-tracker.yml * update readme.md * workflow updates * Add script to determine milestone date * udpate workflow * udpate workflow * Update to ensure variable is added to * Update release highlight workflow * Update workflows to ensure repo is checked out before referencing script --- .../scripts/determine_milestone_date.sh | 83 +++++++++++++++++++ ...test-assistant-api-rest-change-tracker.yml | 56 ++----------- ...st-assistant-release-highlight-tracker.yml | 56 ++----------- 3 files changed, 97 insertions(+), 98 deletions(-) create mode 100644 .github/workflows/scripts/determine_milestone_date.sh diff --git a/.github/workflows/scripts/determine_milestone_date.sh b/.github/workflows/scripts/determine_milestone_date.sh new file mode 100644 index 00000000000..4302095a561 --- /dev/null +++ b/.github/workflows/scripts/determine_milestone_date.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +# Assuming all necessary environment variables like GITHUB_EVENT_PATH are correctly set + +# Function to calculate the second Tuesday of the given month and year +# as the release day is always the 2nd Tuesday +calculate_second_tuesday() { + year=$1 + month=$2 + + first_of_month="$year-$month-01" + day_of_week=$(date -d "$first_of_month" "+%u") + offset_to_first_tuesday=$(( (9 - day_of_week) % 7 )) + first_tuesday=$(date -d "$first_of_month +$offset_to_first_tuesday days" "+%Y-%m-%d") + # Calculate the second Tuesday by adding 7 days + second_tuesday=$(date -d "$first_tuesday +7 days" "+%Y-%m-%d") + + echo $second_tuesday +} + +# Set the initial values for version calculation +initial_version_major=8 # Major version start +initial_version_minor=8 # Minor version start +initial_year=2024 +initial_month=4 # April, for the 8.8.0 release + +# Assuming the script is run in or after 2024 +current_year=$(date +%Y) # Get the current year + +# Calculate the number of versions to generate based on the current year +additional_versions=$(( (current_year - 2024 + 1) * 12 )) + +# Versions to calculate +versions_to_calculate=$additional_versions + +# Declare the associative array outside the loop +declare -A MILESTONE_DATES + +for (( i=0; i> $GITHUB_ENV + +# Print the array in the desired format for display purposes +echo "MILESTONE_DATES=(" +for version in "${!MILESTONE_DATES[@]}"; do +echo " [\"$version\"]=\"${MILESTONE_DATES[$version]}\"" +done +echo ")" diff --git a/.github/workflows/test-assistant-api-rest-change-tracker.yml b/.github/workflows/test-assistant-api-rest-change-tracker.yml index 2c2e95c7033..6ead4960156 100644 --- a/.github/workflows/test-assistant-api-rest-change-tracker.yml +++ b/.github/workflows/test-assistant-api-rest-change-tracker.yml @@ -15,6 +15,9 @@ jobs: run: sleep 2m shell: bash + - name: Checkout repository + uses: actions/checkout@v2 + - name: Calculate test date id: calculate_date run: | @@ -40,55 +43,10 @@ jobs: - name: Determine Milestone Date id: get_milestone_date - run: | - #!/bin/bash - - MILESTONE_TITLE="${{ github.event.pull_request.milestone.title }}" - MILESTONE_DATE="Undefined" - - # Mapping of milestone titles to release dates - declare -A MILESTONE_DATES - MILESTONE_DATES=( - ["8.0.0"]="2023-08-08" - ["8.1.0"]="2023-09-12" - ["8.2.0"]="2023-10-10" - ["8.3.0"]="2023-11-14" - ["8.4.0"]="2023-12-12" - ["8.5.0"]="2024-01-09" - ["8.6.0"]="2024-02-13" - ["8.7.0"]="2024-03-12" - ["8.8.0"]="2024-04-09" - ["8.9.0"]="2024-05-14" - ["9.0.0"]="2024-06-11" - ["9.1.0"]="2024-07-09" - ["9.2.0"]="2024-08-13" - ["9.3.0"]="2024-09-10" - ["9.4.0"]="2024-10-08" - ["9.5.0"]="2024-11-12" - ["9.6.0"]="2024-12-10" - ["9.7.0"]="2025-01-14" - ["9.8.0"]="2025-02-11" - ["9.9.0"]="2025-03-11" - ["10.0.0"]="2025-04-08" - ["10.1.0"]="2025-05-13" - ["10.2.0"]="2025-06-10" - ["10.3.0"]="2025-07-08" - ["10.4.0"]="2025-08-12" - ["10.5.0"]="2025-09-09" - ["10.6.0"]="2025-10-14" - ["10.7.0"]="2025-11-11" - ["10.8.0"]="2025-12-09" - ["10.9.0"]="2026-01-13" - ["11.0.0"]="2026-02-10" - ) - - # Check if the milestone title exists in our predefined list and get the date - if [[ -v "MILESTONE_DATES[${MILESTONE_TITLE}]" ]]; then - MILESTONE_DATE=${MILESTONE_DATES[${MILESTONE_TITLE}]} - fi - - # Export for later steps - echo "MILESTONE_DATE=${MILESTONE_DATE}" >> $GITHUB_ENV + working-directory: .github/workflows/scripts + run: bash determine_milestone_date.sh + env: + GITHUB_EVENT_PATH_PULL_REQUEST_MILESTONE_TITLE: ${{ github.event.pull_request.milestone.title }} # Notify Slack Step - name: Notify Slack diff --git a/.github/workflows/test-assistant-release-highlight-tracker.yml b/.github/workflows/test-assistant-release-highlight-tracker.yml index 5ac53d4b0a2..1e9e38e71a6 100644 --- a/.github/workflows/test-assistant-release-highlight-tracker.yml +++ b/.github/workflows/test-assistant-release-highlight-tracker.yml @@ -15,6 +15,9 @@ jobs: run: sleep 2m shell: bash + - name: Checkout repository + uses: actions/checkout@v2 + - name: Calculate test date id: calculate_date run: | @@ -40,55 +43,10 @@ jobs: - name: Determine Milestone Date id: get_milestone_date - run: | - #!/bin/bash - - MILESTONE_TITLE="${{ github.event.pull_request.milestone.title }}" - MILESTONE_DATE="Undefined" - - # Mapping of milestone titles to release dates - declare -A MILESTONE_DATES - MILESTONE_DATES=( - ["8.0.0"]="2023-08-08" - ["8.1.0"]="2023-09-12" - ["8.2.0"]="2023-10-10" - ["8.3.0"]="2023-11-14" - ["8.4.0"]="2023-12-12" - ["8.5.0"]="2024-01-09" - ["8.6.0"]="2024-02-13" - ["8.7.0"]="2024-03-12" - ["8.8.0"]="2024-04-09" - ["8.9.0"]="2024-05-14" - ["9.0.0"]="2024-06-11" - ["9.1.0"]="2024-07-09" - ["9.2.0"]="2024-08-13" - ["9.3.0"]="2024-09-10" - ["9.4.0"]="2024-10-08" - ["9.5.0"]="2024-11-12" - ["9.6.0"]="2024-12-10" - ["9.7.0"]="2025-01-14" - ["9.8.0"]="2025-02-11" - ["9.9.0"]="2025-03-11" - ["10.0.0"]="2025-04-08" - ["10.1.0"]="2025-05-13" - ["10.2.0"]="2025-06-10" - ["10.3.0"]="2025-07-08" - ["10.4.0"]="2025-08-12" - ["10.5.0"]="2025-09-09" - ["10.6.0"]="2025-10-14" - ["10.7.0"]="2025-11-11" - ["10.8.0"]="2025-12-09" - ["10.9.0"]="2026-01-13" - ["11.0.0"]="2026-02-10" - ) - - # Check if the milestone title exists in our predefined list and get the date - if [[ -v "MILESTONE_DATES[${MILESTONE_TITLE}]" ]]; then - MILESTONE_DATE=${MILESTONE_DATES[${MILESTONE_TITLE}]} - fi - - # Export for later steps - echo "MILESTONE_DATE=${MILESTONE_DATE}" >> $GITHUB_ENV + working-directory: .github/workflows/scripts + run: bash determine_milestone_date.sh + env: + GITHUB_EVENT_PATH_PULL_REQUEST_MILESTONE_TITLE: ${{ github.event.pull_request.milestone.title }} # Notify Slack Step - name: Notify Slack