Skip to content

Commit d6f6944

Browse files
authored
Adding page up / down scrolling keys (#125)
Signed-off-by: Daniel Guns <danbguns@gmail.com>
1 parent 0c222c7 commit d6f6944

4 files changed

Lines changed: 213 additions & 229 deletions

File tree

.github/workflows/check-crd-updates.yml

Lines changed: 49 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -14,155 +14,65 @@ jobs:
1414
- uses: actions/checkout@v4
1515
with:
1616
token: ${{ secrets.GITHUB_TOKEN }}
17-
17+
1818
- name: Install Rust
1919
uses: dtolnay/rust-toolchain@stable
20-
21-
- name: Install dependencies
22-
run: |
23-
sudo apt-get update
24-
sudo apt-get install -y curl jq
25-
26-
- name: Check latest Flux versions
27-
id: check_versions
28-
run: |
29-
echo "Checking latest Flux component versions..."
30-
31-
# Check source-controller
32-
SOURCE_VERSION=$(curl -s https://api.github.com/repos/fluxcd/source-controller/releases/latest | jq -r '.tag_name' | sed 's/v//')
33-
echo "source_controller_latest=$SOURCE_VERSION" >> $GITHUB_OUTPUT
34-
35-
# Check kustomize-controller
36-
KUSTOMIZE_VERSION=$(curl -s https://api.github.com/repos/fluxcd/kustomize-controller/releases/latest | jq -r '.tag_name' | sed 's/v//')
37-
echo "kustomize_controller_latest=$KUSTOMIZE_VERSION" >> $GITHUB_OUTPUT
38-
39-
# Check helm-controller
40-
HELM_VERSION=$(curl -s https://api.github.com/repos/fluxcd/helm-controller/releases/latest | jq -r '.tag_name' | sed 's/v//')
41-
echo "helm_controller_latest=$HELM_VERSION" >> $GITHUB_OUTPUT
42-
43-
# Check notification-controller
44-
NOTIFICATION_VERSION=$(curl -s https://api.github.com/repos/fluxcd/notification-controller/releases/latest | jq -r '.tag_name' | sed 's/v//')
45-
echo "notification_controller_latest=$NOTIFICATION_VERSION" >> $GITHUB_OUTPUT
46-
47-
# Check image-reflector-controller
48-
IMAGE_REFLECTOR_VERSION=$(curl -s https://api.github.com/repos/fluxcd/image-reflector-controller/releases/latest | jq -r '.tag_name' | sed 's/v//')
49-
echo "image_reflector_controller_latest=$IMAGE_REFLECTOR_VERSION" >> $GITHUB_OUTPUT
50-
51-
# Check image-automation-controller
52-
IMAGE_AUTOMATION_VERSION=$(curl -s https://api.github.com/repos/fluxcd/image-automation-controller/releases/latest | jq -r '.tag_name' | sed 's/v//')
53-
echo "image_automation_controller_latest=$IMAGE_AUTOMATION_VERSION" >> $GITHUB_OUTPUT
54-
55-
# Check source-watcher
56-
SOURCE_WATCHER_VERSION=$(curl -s https://api.github.com/repos/fluxcd/source-watcher/releases/latest | jq -r '.tag_name' | sed 's/v//')
57-
echo "source_watcher_latest=$SOURCE_WATCHER_VERSION" >> $GITHUB_OUTPUT
58-
59-
echo "Latest versions:"
60-
echo " source-controller: $SOURCE_VERSION"
61-
echo " kustomize-controller: $KUSTOMIZE_VERSION"
62-
echo " helm-controller: $HELM_VERSION"
63-
echo " notification-controller: $NOTIFICATION_VERSION"
64-
echo " image-reflector-controller: $IMAGE_REFLECTOR_VERSION"
65-
echo " image-automation-controller: $IMAGE_AUTOMATION_VERSION"
66-
echo " source-watcher: $SOURCE_WATCHER_VERSION"
67-
68-
- name: Download latest CRDs
69-
run: |
70-
mkdir -p crds_new
71-
72-
# Download source-controller CRDs
73-
curl -L "https://github.com/fluxcd/source-controller/releases/download/v${{ steps.check_versions.outputs.source_controller_latest }}/source-controller.crds.yaml" -o crds_new/source-controller.crds.yaml
74-
75-
# Download kustomize-controller CRDs
76-
curl -L "https://github.com/fluxcd/kustomize-controller/releases/download/v${{ steps.check_versions.outputs.kustomize_controller_latest }}/kustomize-controller.crds.yaml" -o crds_new/kustomize-controller.crds.yaml
77-
78-
# Download helm-controller CRDs
79-
curl -L "https://github.com/fluxcd/helm-controller/releases/download/v${{ steps.check_versions.outputs.helm_controller_latest }}/helm-controller.crds.yaml" -o crds_new/helm-controller.crds.yaml
80-
81-
# Download notification-controller CRDs
82-
curl -L "https://github.com/fluxcd/notification-controller/releases/download/v${{ steps.check_versions.outputs.notification_controller_latest }}/notification-controller.crds.yaml" -o crds_new/notification-controller.crds.yaml
83-
84-
# Download image-reflector-controller CRDs
85-
curl -L "https://github.com/fluxcd/image-reflector-controller/releases/download/v${{ steps.check_versions.outputs.image_reflector_controller_latest }}/image-reflector-controller.crds.yaml" -o crds_new/image-reflector-controller.crds.yaml
86-
87-
# Download image-automation-controller CRDs
88-
curl -L "https://github.com/fluxcd/image-automation-controller/releases/download/v${{ steps.check_versions.outputs.image_automation_controller_latest }}/image-automation-controller.crds.yaml" -o crds_new/image-automation-controller.crds.yaml
89-
90-
# Download source-watcher CRDs
91-
curl -L "https://github.com/fluxcd/source-watcher/releases/download/v${{ steps.check_versions.outputs.source_watcher_latest }}/source-watcher.crds.yaml" -o crds_new/source-watcher.crds.yaml
92-
93-
- name: Compare CRDs
94-
id: compare
95-
run: |
96-
CHANGED=false
97-
98-
for file in crds_new/*.yaml; do
99-
filename=$(basename "$file")
100-
if [ ! -f "crds/$filename" ] || ! diff -q "crds/$filename" "$file" > /dev/null 2>&1; then
101-
echo "CRD changed: $filename"
102-
CHANGED=true
103-
fi
104-
done
105-
106-
echo "changed=$CHANGED" >> $GITHUB_OUTPUT
107-
20+
10821
- name: Install kopium
109-
if: steps.compare.outputs.changed == 'true'
11022
run: cargo install kopium
111-
112-
- name: Update CRDs and regenerate models
113-
if: steps.compare.outputs.changed == 'true'
23+
24+
- name: Fetch latest CRDs and regenerate models
25+
run: make update-flux
26+
27+
- name: Run integration tests
28+
run: make test-integration
29+
30+
- name: Check for changes
31+
id: changes
11432
run: |
115-
# Backup current CRDs
116-
cp -r crds crds_backup
117-
118-
# Replace with new CRDs
119-
cp crds_new/*.yaml crds/
120-
121-
# Regenerate models
122-
# Note: This assumes you have a script or Makefile target for regeneration
123-
# Adjust based on your actual setup
124-
echo "Regenerating models..."
125-
# Add your model regeneration command here
126-
# Example: make regenerate-models
127-
128-
- name: Run tests
129-
if: steps.compare.outputs.changed == 'true'
33+
if git diff --quiet; then
34+
echo "changed=false" >> "$GITHUB_OUTPUT"
35+
echo "No CRD or model changes detected."
36+
else
37+
echo "changed=true" >> "$GITHUB_OUTPUT"
38+
echo "Changed files:"
39+
git diff --name-only
40+
fi
41+
42+
- name: Read updated versions from manifest
43+
if: steps.changes.outputs.changed == 'true'
44+
id: manifest
13045
run: |
131-
cargo test --lib --tests --test crd_compatibility --test resource_registry --test model_compatibility
132-
46+
{
47+
echo "versions<<EOF"
48+
jq -r '.flux_versions | to_entries[] | "- \(.key): \(.value)"' manifest.json
49+
echo "EOF"
50+
} >> "$GITHUB_OUTPUT"
51+
13352
- name: Create Pull Request
134-
if: steps.compare.outputs.changed == 'true'
53+
if: steps.changes.outputs.changed == 'true'
13554
uses: peter-evans/create-pull-request@v5
13655
with:
13756
token: ${{ secrets.GITHUB_TOKEN }}
138-
commit-message: |
139-
chore: update Flux CRDs to latest versions
140-
141-
- source-controller: v${{ steps.check_versions.outputs.source_controller_latest }}
142-
- kustomize-controller: v${{ steps.check_versions.outputs.kustomize_controller_latest }}
143-
- helm-controller: v${{ steps.check_versions.outputs.helm_controller_latest }}
144-
- notification-controller: v${{ steps.check_versions.outputs.notification_controller_latest }}
145-
- image-reflector-controller: v${{ steps.check_versions.outputs.image_reflector_controller_latest }}
146-
- image-automation-controller: v${{ steps.check_versions.outputs.image_automation_controller_latest }}
147-
- source-watcher: v${{ steps.check_versions.outputs.source_watcher_latest }}
148-
title: "chore: Update Flux CRDs to latest versions"
57+
commit-message: "chore: update Flux CRDs to latest versions"
58+
title: "chore: update Flux CRDs to latest versions"
14959
body: |
150-
This PR updates Flux CRDs to the latest versions.
151-
152-
**Updated Components:**
153-
- source-controller: v${{ steps.check_versions.outputs.source_controller_latest }}
154-
- kustomize-controller: v${{ steps.check_versions.outputs.kustomize_controller_latest }}
155-
- helm-controller: v${{ steps.check_versions.outputs.helm_controller_latest }}
156-
- notification-controller: v${{ steps.check_versions.outputs.notification_controller_latest }}
157-
- image-reflector-controller: v${{ steps.check_versions.outputs.image_reflector_controller_latest }}
158-
- image-automation-controller: v${{ steps.check_versions.outputs.image_automation_controller_latest }}
159-
- source-watcher: v${{ steps.check_versions.outputs.source_watcher_latest }}
160-
161-
**Changes:**
162-
- Updated CRD files
163-
- Regenerated models with kopium
164-
- All tests passing
165-
166-
**Auto-generated by GitHub Actions**
60+
This PR updates Flux CRDs to the latest versions and regenerates Rust models.
61+
62+
**Updated components:**
63+
${{ steps.manifest.outputs.versions }}
64+
65+
**Files changed:**
66+
- `scripts/fetch-crds.sh` — updated version manifest
67+
- `crds/*.yaml` — updated CRD definitions
68+
- `src/models/_generated/` — regenerated Rust models
69+
- `manifest.json` — updated version manifest
70+
71+
**Validation:**
72+
- ✅ CRDs fetched and models regenerated via `make update-flux`
73+
- ✅ Build verified via `cargo check`
74+
- ✅ Integration tests passing via `make test-integration`
75+
76+
> Auto-generated by GitHub Actions
16777
branch: update-flux-crds
16878
delete-branch: true

0 commit comments

Comments
 (0)