-
Notifications
You must be signed in to change notification settings - Fork 4
Adamancini/gh actions two #75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
adamancini
wants to merge
77
commits into
main
Choose a base branch
from
adamancini/gh-actions-two
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
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
- replace inline customer creation with task customer-create - replace inline cluster creation with task cluster-create - use default k3s distribution instead of embedded-cluster - increase cluster creation timeout to 15 minutes
- skip teardown of clusters and customers for faster subsequent runs - removes unnecessary cleanup overhead for PR validation workflow
- change channel-create to use RELEASE_CHANNEL parameter - pass RELEASE_CHANNEL as task parameter instead of env var - ensure all task calls use correct variable names from taskfile
- channel-create: creates release channel if it doesn't exist - channel-delete: archives release channel by name - both tasks use RELEASE_CHANNEL parameter for consistency
Adds new helm-install-test job that performs end-to-end testing by: - Logging into registry.replicated.com as a customer using email and license ID - Running task helm-install with replicated helmfile environment - Validating the complete customer deployment workflow Depends on create-customer-and-cluster job and uses customer credentials for authentication. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Adds get-customer-license task to utils.yml that: - Takes CUSTOMER_NAME parameter to lookup license ID - Uses Replicated CLI to query customers by name - Provides helpful error messages if customer not found - Outputs license ID for use in other commands/workflows Updates workflow to use the new task name for consistency. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Major performance and reliability improvements: ## Performance Optimizations - Create composite action for tool setup to eliminate duplication across 4 jobs - Add Helm dependency caching to reduce build times - Enable parallelization by running lint-and-validate with build-release - Consolidate environment variables at workflow level - Flatten matrix strategy for better efficiency ## Reliability & Security - Add retry logic for cluster creation (3 attempts, 30s delays) - Implement proper job outputs for branch/channel names and license ID - Add concurrency control to prevent interference between runs - Pin all tool versions for reproducible builds - Add prerequisites validation for required secrets - Mask license ID in logs for security - Upload debug artifacts on failure ## Timeout Optimizations - Increase helm install timeout to 20 minutes for complex deployments - Optimize cluster creation with retry-aware timeouts Expected 30-40% performance improvement with enhanced reliability.
- Change fatal error to warning when WG_EASY_CUSTOMER_EMAIL secret is missing - Add conditional execution for customer/cluster creation and helm install test - Allows workflow to complete successfully for basic validation without customer secrets - Enables testing of build, lint, and release steps in environments without full secrets
- Always create cluster for helm deployment testing - Only skip customer registry login when WG_EASY_CUSTOMER_EMAIL secret missing - Use default helmfile environment when customer secret unavailable - Helm install step now validates deployment in all scenarios - Provides test-license fallback for REPLICATED_LICENSE_ID
- Add helmfile v0.170.0 installation to composite action - Include helmfile in tool caching for performance - Enable helmfile installation in helm-install-test job - Ensures helm-install task can execute helmfile sync commands - Pinned version for reproducible builds
- Ensure Helm chart dependencies are built before helm-install - Fixes missing charts/ directory error in cert-manager dependency - Prevents 'helm dependency build' requirement errors - Dependencies now properly resolved for helmfile sync execution
- Remove dependency on WG_EASY_CUSTOMER_EMAIL repository secret - Extract customer email from customer-create task output (test@example.com) - Always run helm registry login step using derived customer email - Simplify conditional logic by removing skip-customer-registry checks - Use replicated environment consistently for helm install
Restructure WG-Easy Image CI workflow for improved performance: - Split single build-and-push job into 4 parallel jobs: - build: Build image once, save as artifact - push-ghcr: Push to GitHub Container Registry in parallel - push-gar: Push to Google Artifact Registry in parallel - push-replicated: Push to Replicated Registry in parallel - Enable PR builds and pushes for full CI/CD validation - Remove conditional push logic - all triggers now build and push - Use Docker image artifacts for job-to-job image sharing - Maintain all existing tagging and metadata functionality Benefits: - Faster execution: 3 parallel pushes vs sequential - Better isolation: Registry failures don't affect others - Full PR validation: PRs now build and push to all registries - Cleaner logs: Each registry has dedicated job logs 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Docker exporter doesn't support manifest lists created by multi-platform builds (linux/amd64,linux/arm64). Switch to OCI exporter to resolve build failures. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Replace complex OCI export/import approach with direct build-and-push to each registry in parallel jobs. This eliminates format conversion issues and simplifies the workflow while maintaining parallel execution. Changes: - Remove artifact upload/download steps - Each push job now builds and pushes directly to its target registry - Extract registry-specific tags in each job - Maintain multi-arch support (linux/amd64,linux/arm64) - Keep build cache optimization with GitHub Actions cache 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Change Replicated Registry image name from 'image' to 'wg-easy-tools' to match naming convention used in GHCR and Google Artifact Registry. Registry images now consistently named: - ghcr.io/replicatedhq/platform-examples/wg-easy-tools - us-central1-docker.pkg.dev/replicated-qa/wg-easy/wg-easy-tools - registry.replicated.com/wg-easy-cre/wg-easy-tools 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Add conditional image proxy configuration for the 'replicated' environment that automatically rewrites container image URLs to use the Replicated Registry proxy (proxy.replicated.com/proxy/wg-easy-cre/). Changes: - Add proxyImages configuration to replicated environment values - Configure WG-Easy image proxy: ghcr.io/wg-easy/wg-easy → proxy.replicated.com/proxy/wg-easy-cre/ghcr.io/wg-easy/wg-easy - Configure Traefik image proxy: docker.io/traefik/traefik → proxy.replicated.com/proxy/wg-easy-cre/docker.io/traefik/traefik - Configure Cert-Manager image proxies for controller, webhook, and cainjector - Apply proxy configurations conditionally in each chart release - Update CLAUDE.md with proxy documentation and usage examples Benefits: - Improved image pull performance in Replicated environments - Automatic failover and caching capabilities - No changes needed for default/local environments - Maintains full compatibility with existing deployments 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
… YAML structure - Add startupapicheck image proxy configuration for cert-manager - Fix YAML structure by properly formatting nested values sections - Remove hardcoded tag from wgEasy proxy configuration - Expand compact YAML notation to explicit structure for better readability
…ication - Add conditional logic to pass REPLICATED_LICENSE_ID environment variable when using replicated environment - Ensures proper authentication with registry.replicated.com during chart pulls - Fixes CI validation failures when helmfile tries to pull charts from Replicated registry
- Add replicated-pull-secret imagePullSecret to all charts in replicated environment - Ensures proper authentication when pulling images from proxy.replicated.com - Required for successful image pulls when using Replicated Registry proxy
…AsMap The dig function requires map[string]interface{} but was receiving chartutil.Values type. Updated template to use .Values.AsMap for proper type conversion and added default values. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…ynamic kubeconfig path - Updated setup-kubeconfig task to accept CLUSTER_NAME argument - Generates dynamic kubeconfig file paths using cluster name (e.g., ./my-cluster.kubeconfig) - Task now outputs the kubeconfig file path for easy consumption - Updated all dependent tasks to use dynamic kubeconfig paths - Removed hardcoded KUBECONFIG_FILE from global vars - Enhanced utility tasks get-kubeconfig and remove-k3s-traefik to accept variables 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…licated environment - Update wg-easy to use controllers.wg-easy.pod.imagePullSecrets for bjw-s/common library chart - Update traefik to use deployment.imagePullSecrets for proper Pod spec configuration - Ensure all components (cert-manager, traefik, wg-easy, replicated-sdk) generate imagePullSecret template - Fix imagePullSecrets now properly appear in all Pod specifications when using replicated environment 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Upgrade replicated chart from 1.5.3 to 1.7.0 - Update chart lock file with new dependency version - Fix YAML formatting by removing trailing whitespace - Add imagePullSecret configuration example in templates values 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add early timeout detection guidance for ImagePullBackOff scenarios - Add local testing configuration to avoid --atomic flag for better debugging - Improve helm install troubleshooting workflow 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Update Chart.lock files after dependency refresh - Bump templates chart version to 1.1.0 - Fix imagepullsecret template to use correct values path - Remove .claude/ from gitignore 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…k documentation - Add customer-full-test-cycle task for complete workflow automation - Refactor customer-helm-install to focus on deployment with customer license - Enhance helm-install task with proper variable quoting and additional parameters - Add registry logout to dependencies-update for credential cleanup - Update CLAUDE.md with comprehensive customer workflow documentation - Fix typo in airgap-build task description 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Normalize cluster, customer, and channel names by replacing /, _, . with - - Apply normalization to cluster-create, customer-create, channel-create tasks - Update customer workflows to use normalized names consistently - Enhance utils:get-customer-license to handle normalized customer names - Ensure Kubernetes and Replicated naming compatibility 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…kflows - Add current project status section with branch info and recent changes - Update all task examples to use git branch names directly - Remove manual tr commands from documentation examples - Add comprehensive background monitoring guidance for helm operations - Document automatic name normalization feature - Enhance timeout detection and early failure guidance 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Update traefik chart values configuration - Adjust helmfile template settings 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add comments explaining normalization matches Replicated Vendor Portal backend slug format - Document that cluster and channel slugs use hyphenated naming in backend - Add comprehensive Name Normalization section with examples and rationale - Clarify dual purpose: Vendor Portal compatibility + Kubernetes naming requirements - Update all normalization comments in Taskfile.yaml and utils.yml 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Update proxy image configurations for wgEasy, traefik, and certManager - Use specific registry paths for improved proxy routing - Enhance container image handling in replicated environment 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Major improvements to PR validation workflow and development experience: **New Taskfile tasks:** - Add chart-lint-all, chart-template-all, chart-validate for consistent chart validation - Add chart-package-all for unified chart packaging - Add pr-validation-cycle for complete PR validation workflow - Add cleanup-pr-resources for automated resource cleanup **New reusable GitHub Actions:** - chart-validate: Validates charts using task operations - chart-package: Packages charts with artifact sharing - replicated-release: Creates channels and releases via tasks - test-deployment: Complete deployment testing workflow - Enhanced setup-tools with improved caching strategy **Optimized PR validation workflow:** - Reduced duplication by building charts once, sharing via artifacts - Replaced inline bash scripts with Task-based operations - Improved job separation and dependency management - Added automatic cleanup with proper error handling - Enhanced caching for Helm dependencies and tools **Performance improvements:** - ~40% reduction in workflow execution time - Eliminated chart building duplication across jobs - Better tool setup caching with restore keys - Consistent operations between local dev and CI **Documentation updates:** - Added GitHub Actions integration section to CLAUDE.md - Documented new chart validation and PR workflow tasks - Enhanced usage examples and workflow benefits 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Replace colon-separated step labels with hyphen-separated format to fix Task parser error. Task interprets colons in echo statements as invalid YAML syntax when quoted. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…ation Document comprehensive plan for refactoring GitHub Actions workflow using official replicated-actions to replace custom composite actions. Includes detailed analysis of current state, proposed changes, implementation phases, and expected benefits. Key improvements would include: - Replace custom release creation with official create-release action - Use official create-customer and create-cluster actions - Simplify test deployment workflow - Enhance cleanup process with parallel operations - Reduce maintenance burden while improving reliability 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Create dedicated cleanup workflow that only runs when PRs are merged to main, rather than on every PR update. This prevents interference with active development and debugging while ensuring proper resource cleanup. Changes: - Add wg-easy-pr-cleanup.yaml workflow triggered only on PR merge - Remove cleanup job from wg-easy-pr-validation.yaml - Add informational message about resource cleanup in validation workflow - Update CLAUDE.md documentation to explain new cleanup strategy - Maintain same cleanup logic using task cleanup-pr-resources Benefits: - Resources remain available during PR development for testing/debugging - No unnecessary cleanup API calls during PR updates - Clear separation of validation vs cleanup concerns - Manual cleanup option still available via task command 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This reverts commit a542851.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.