Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 93 additions & 1 deletion .github/dependabot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -180,9 +180,101 @@ updates:
default-days: 7

# =========================
# RELEASE BRANCHES — keep daily for v1.5, v1.6, and v1.7
# RELEASE BRANCHES — keep daily for v1.6, v1.7, and v1.8
# =========================

# release/v1.8 constraints (daily);
- package-ecosystem: "docker"
directories:
- "**/*"
exclude-paths:
- "**/*.tmpl"
- "**/*.yaml"
- "**/*.yml"
schedule:
interval: "daily"
commit-message:
prefix: "ci"
labels: ["ci", "dependencies", "release/1.8"]
open-pull-requests-limit: 10
target-branch: "release/v1.8"
groups:
all-docker-dependencies:
applies-to: version-updates
patterns: ["*"]
cooldown:
default-days: 7

- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "daily"
commit-message:
prefix: "deps"
labels: ["dependencies", "release/1.8"]
open-pull-requests-limit: 1
target-branch: "release/v1.8"
groups:
kubernetes-minor-and-patch:
applies-to: version-updates
patterns: ["k8s.io/*"]
update-types: ["minor", "patch"]
all-go-minor-and-patch:
applies-to: version-updates
patterns: ["*"]
update-types: ["minor", "patch"]
ignore:
- dependency-name: "k8s.io/api"
versions: [">=0.37.0"]
- dependency-name: "k8s.io/apiextensions-apiserver"
versions: [">=0.37.0"]
- dependency-name: "k8s.io/apimachinery"
versions: [">=0.37.0"]
- dependency-name: "k8s.io/client-go"
versions: [">=0.37.0"]
- dependency-name: "k8s.io/kubelet"
versions: [">=0.37.0"]
- dependency-name: "k8s.io/kubectl"
versions: [">=0.37.0"]
Comment on lines +237 to +238
cooldown:
default-days: 7

- package-ecosystem: "gomod"
directory: "/azure-ipam"
schedule:
interval: "daily"
commit-message:
prefix: "deps"
labels: ["dependencies", "azure-ipam", "release/1.8"]
open-pull-requests-limit: 1
target-branch: "release/v1.8"
groups:
kubernetes-minor-and-patch:
applies-to: version-updates
patterns: ["k8s.io/*"]
update-types: ["minor", "patch"]
all-go-minor-and-patch:
applies-to: version-updates
patterns: ["*"]
update-types: ["minor", "patch"]
ignore:
- dependency-name: "k8s.io/api"
versions: [">=0.37.0"]
- dependency-name: "k8s.io/apiextensions-apiserver"
versions: [">=0.37.0"]
- dependency-name: "k8s.io/apimachinery"
versions: [">=0.37.0"]
- dependency-name: "k8s.io/client-go"
versions: [">=0.37.0"]
- dependency-name: "k8s.io/kubelet"
versions: [">=0.37.0"]
- dependency-name: "k8s.io/kubectl"
versions: [">=0.37.0"]
- dependency-name: "github.com/Azure/azure-container-networking"
versions: [">=1.9.0"]
cooldown:
default-days: 7

# release/v1.7 constraints (daily);
- package-ecosystem: "docker"
directories:
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/go-version-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ jobs:
echo "::notice::Created issue $ISSUE_URL and assigned to Copilot"

# ═══════════════════════════════════════════════════════════════════
# Backport: Create issue for Copilot to apply Tier 1/2 to release/v1.7
# Backport: Create issue for Copilot to apply Tier 1/2 to release/v1.8
# ═══════════════════════════════════════════════════════════════════
backport-release:
needs: [check-go-update, auto-bump]
Expand All @@ -384,7 +384,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
branch: [release/v1.7]
branch: [release/v1.8]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
Expand Down Expand Up @@ -770,16 +770,16 @@ jobs:
- [ ] \`make dockerfiles\` output matches committed files
- [ ] No new \`replace\` directives (unless necessary and explained)
- [ ] FIPS/crypto config correct per MS Go docs for THIS specific version
- [ ] **Backport PR created for \`release/v1.7\`**
- [ ] **Backport PR created for \`release/v1.8\`**

### Backport to \`release/v1.7\`
### Backport to \`release/v1.8\`

After the master PR is complete, create a **second PR** targeting \`release/v1.7\`:
1. Check out \`release/v1.7\`
After the master PR is complete, create a **second PR** targeting \`release/v1.8\`:
1. Check out \`release/v1.8\`
2. Apply the same Go version + SHA changes
3. If \`release/v1.7\` is missing prerequisites (based on your analysis), add those too
3. If \`release/v1.8\` is missing prerequisites (based on your analysis), add those too
4. Run \`make dockerfiles\` and \`go mod tidy\` on that branch
5. Title: \`chore(release/v1.7): upgrade Go ${GO_MINOR} → ${LATEST_MINOR}\`
5. Title: \`chore(release/v1.8): upgrade Go ${GO_MINOR} → ${LATEST_MINOR}\`
6. Verify \`go build ./...\` passes on release branch

> **Note:** The release branch may have different dependency versions than master.
Expand Down
17 changes: 9 additions & 8 deletions .github/workflows/scheduled-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# - Last Friday of month: CNI notification + dependabot PR collection (1 week heads-up)
# - First Friday of month: Tag creation (skips PR wait; only pause/resume can block)
# - Other Fridays: Skipped by check_cadence
# Branches: release/v1.7 (14:00) and master (14:15) + manual dispatch
# Branches: release/v1.8 (14:00) and master (14:15) + manual dispatch
#
# ─── Teams Notification Dependency ───────────────────────────────────────────
# Teams messages are sent via the acn-notifier-bot Azure Function App,
Expand All @@ -24,16 +24,17 @@ on:
schedule:
# Every Friday at 14:00/14:15 UTC (7:00 AM PST)
# check_cadence determines: last Friday of month → notification, first Friday → tag creation
- cron: "0 14 * * 5" # release/v1.7
- cron: "0 14 * * 5" # release/v1.8
- cron: "15 14 * * 5" # master
workflow_dispatch:
inputs:
release_branch:
description: "Release branch to target"
required: true
default: "release/v1.7"
default: "release/v1.8"
type: choice
options:
- release/v1.8
- release/v1.7
- master
skip_dependabot_wait:
Expand All @@ -58,16 +59,16 @@ on:
type: boolean

concurrency:
group: scheduled-release-${{ inputs.release_branch || (github.event.schedule == '15 14 * * 5' && 'master') || 'release/v1.7' }}
group: scheduled-release-${{ inputs.release_branch || (github.event.schedule == '15 14 * * 5' && 'master') || 'release/v1.8' }}
cancel-in-progress: false

permissions:
contents: read
pull-requests: read

env:
# Map cron schedules to branches: *:15 → master, *:00 → release/v1.7
RELEASE_BRANCH: ${{ inputs.release_branch || (github.event.schedule == '15 14 * * 5' && 'master') || 'release/v1.7' }}
# Map cron schedules to branches: *:15 → master, *:00 → release/v1.8
RELEASE_BRANCH: ${{ inputs.release_branch || (github.event.schedule == '15 14 * * 5' && 'master') || 'release/v1.8' }}
MAX_PIPELINE_RETRIES: 5
NOTIFIER_URL: https://acn-notifier-bot.azurewebsites.net
NOTIFIER_AUDIENCE: api://3976eca5-3f9d-4528-987f-c20c1f9f27f7
Expand Down Expand Up @@ -173,7 +174,7 @@ jobs:
set -euo pipefail
VERSION_PREFIX=""
if [[ "$RELEASE_BRANCH" == "master" ]]; then
VERSION_PREFIX="--version-prefix v1.8"
VERSION_PREFIX="--version-prefix v1.9"
fi
VERSION=$(/tmp/release-cli next-version --branch "$RELEASE_BRANCH" $VERSION_PREFIX)
echo "new_tag=$(echo "$VERSION" | jq -r '.new_tag')" >> "$GITHUB_OUTPUT"
Expand Down Expand Up @@ -736,7 +737,7 @@ jobs:
set -euo pipefail
VERSION_PREFIX=""
if [[ "$RELEASE_BRANCH" == "master" ]]; then
VERSION_PREFIX="--version-prefix v1.8"
VERSION_PREFIX="--version-prefix v1.9"
fi
RESULT=$(/tmp/release-cli next-version --branch "$RELEASE_BRANCH" $VERSION_PREFIX)
echo "new_tag=$(echo "$RESULT" | jq -r '.new_tag')" >> "$GITHUB_OUTPUT"
Expand Down
Loading