Skip to content
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

CI workflow #6

Closed
vinzscam opened this issue Feb 16, 2024 · 3 comments · Fixed by #13
Closed

CI workflow #6

vinzscam opened this issue Feb 16, 2024 · 3 comments · Fixed by #13
Assignees

Comments

@vinzscam
Copy link
Member

We need to create an initial CI workflow similar to the one at https://github.com/backstage/backstage/blob/master/.github/workflows/ci.yml , which runs on pull requests.

The workflow should be optimized to build only the workspaces with changes. One approach could be to have a reusable workflow accepting a workspace as input, and another proxy workflow that detects changed files and invokes the build on the workspaces with changes.

@vinzscam
Copy link
Member Author

vinzscam commented Feb 16, 2024

In the main monorepo we run backstage-cli repo lint --since origin/master which basically finds all the packages in the yarn workspace which have changed from origin/master and runs lint.

Thinking that we could have our own CLI tooling here something like community-cli workspaces lint --since origin/master which will find all the workspaces that have changed and run backstage-cli repo lint --since origin/master for those packages.

Same applies for backstage-cli repo test

@benjdlambert
Copy link
Member

benjdlambert commented Feb 16, 2024

Also things to think about here:

  • yarn install how does that work? How can we do caching?
  • Required status checks, we want to be able to make things required like we do in main monorepo, how do we split that?
  • Failing if there's a change to multiple workspaces in one PR?

@tudi2d
Copy link
Member

tudi2d commented Feb 19, 2024

Good comment, @benjdlambert - thanks. The yarn install one is interesting & not sure we will be able to figure this out directly.

As an general update - @vinzscam & I started picking this up & experimenting to detect changed workspaces & trigger CI on them. We are trying to build on existing cli/cli-node packages from backstage/backstage as much as possible.

BethGriggs pushed a commit that referenced this issue Aug 8, 2024
* adds the resource-optimization plugin files

- (refactor) Adds the new workspace's lockfile
- (refactor) adds the cost-management FE plugin
- (refactor) removes react-dom and react-router-dom from the peerDeps
- (refactor) updates yarn.lock
- (refactor) adds a basic app-config.yaml with untested proxy settings
- (refactor) adds cost-management-client
- (refactor) adds CostManagementIcon.tsx
- (refactor) adds sample packages/app and packages/backend
- (refactor) converts the cost-management client into the recommendations client
- (refactor) Introduces the combined cost-management client
- (fix) fixes issues with overlapping symbols
- (refactor) Refactors the cost-management plugin
- (refactor) Renames the cost-management-client package to cost-management-common
- (refactor) Renames src/api/ApiRefs.ts to src/api/ref.ts
- (refactor) simplifies getting the proxy's baseUrl
- (fix) fixes the client generator script
- (refactor) Adds changeOrigin to the proxy settings
- (refactor) created first page using material UI components
- (refactor) updated config for FE
- (refactor) removed custom webpack config file
- consuming API response in the table
- (refactor) added util method to handle API JSON response
- (refactor) introduces JSONUtils.toCamelCaseObjectKeys
- (refactor) adds new workspace for resource-optimization
- (refactor) adds placeholder for the FE and Common plug-ins
- (refactor) adds app-config.yaml
- (refactor) adds react-related missing peer-deps
- (refactor) adds resource-optimization-common as a dependency to the FE plug-in
- (refactor) adds a sample app and backend for showcase purposes
- (refactor) Adds also a PoC for the plugin icon
- (refactor) migrates the old common package to resource-optimization
- (fix) fixes an eslint issue related to lodash
- (refactor) updates the icon snapshot
- (refactor) updates json.test.ts
- (refactor) adds initial code for the BE plugin
- (fix) fixes the plugin icon
- (refactor) changes the plugin name in the navbar
- (refactor) adds 2 variants for the plugin icon
- (refactor) added UI for the first page of resource optimization plugin & fixed endpoint in config (#2)
- (fix) fixes an issue in toCamelCaseObjectKeys function
- (refactor) introduces the resource-optimization-backend
- (fix) fixes the token renewal mechanism
- (refactor) Improved the keys serialization/deserialization issue (use camelCase when receiving, but snake_case when sending data)
- (refactor) The plugin can read the clientId and clientSecret from the app-config.yaml
- (refactor) Cleans up the ExampleComponent.tsx
- (refactor) makes ssoBaseUrl config optional
- (refactor) cleans up ExampleComponent.tsx a bit more
- (refactor) add assertion to ensure config is defined
- (refactor) replaces json utils with jsr:@y0n1/json
- (fix) : fix missing query params after token expires
- (feat) RHINENG-10603 first page table functionality - Pagination + Sorting (#3)
- (feat) RHINENG-10603 first page table functionality
- (fix) minor fixes
- (refactor) code refactoring for landing page table
- (refactor) handling offset and sorting query params and code cleanup
- (refactor) disable third sort on table component
- (refactor) added unit tests and code cleanup
- (refactor) improved landing page layout
- (fix) fixes unit tests
- (feat) RHINENG-10603 landing page filters functionality (#4)
- (feat) RHINENG-10603 added search filter component and filters functionality
- (fix) fixes the issue with the query params in getRecommendationsList
- (feat) RHINENG-10787 detail page top section and recommendation section (#5)
- (feat) RHINENG-10787 detail page top section and UI
- (refactor) removed memoryUnit & cpuUnit from query
- (refactor) code cleanup
- (fix) fixes cluster filter and detail page values
- (refactor) added util method to handle YAML code generation from API response
- (refactor) ignores dynamic-plugins dist directory globally
- (refactor) adds janus-cli and export-dynamic scripts
- (refactor) removes ExampleFetchComponent
- (refactor) updates apis.ts
- (fix) do not convert the recommendations_id param to snake case
- (fix) fixes tsc, linting and formatting issues
- (fix) fixes some issues related to different types of dependencies
- (fix) pathes PlotDetails model
- (fix) stop depending on @mui/material and remove white bg from search filters
- (refactor) patches all the parameters of getRecommendationById
- (refactor) Applies required refactors for compatibility with dynamic plugins (#6)
- (refactor) adds @backstage/backend-dynamic-feature-service
- (refactor) adds rhdh theme
- (refactor) adds devcontainer config
- (refactor) removes leftovers froms the cost-management workspace
- (refactor) updates resource-optimization frontend
- (refactor) adds configuration files for rhdh
- (refactor) Update workspaces/resource-optimization/plugins/resource-optimization/src/plugin.ts
- (refactor) adds devcontainer config
- (refactor) adds deployment scripts
- (refactor) adds export-dynamic top-level script
- (fix) fixes issues related to dependencies
- (refactor) removes the dynamic-plugins integration from the backend package
- (fix) fixes linting and type-checking issues
- (refactor) exports the icon from the front-end plugin
- (refactor) Updates yarn.lock
- (fix) fixes some type-only import statements
- (chore) sync @backstage-community/plugin-resource-optimization-backend
- (fix) fixes style issues
- (fix) fixes an issue related to the api-report generation, see: backstage/backstage#25671
- (refactor) renames useRhdhTheme.ts to rhdh-theme.ts
- (chore) cleans up devcontainer settings and code-workspace file
- (fix) fixes style issues and generates api-report
- (fix) fixes code style and adds the api-report
- (fix) fixes code style and adds the api-report
- (refactor) Updates resource-optimization-common
- (chore) Patches the generated client code with ts-morph
- (style) The code now complies with the rules of the api-report (via `yarn build:api-reports`)
- (refactor) Adds the api-report
- (refactor) Updates the openapi.yaml
- (refactor) Renames OrchestratorClient to OrchestratorApiClientProxy
- (refactor) Updates resource-optimization
- (refactor) Aligns the code according to the refactor in resource-optimization-common
- (fix) detail page tab routing (#8)
- (fix) detail page tab routing
- (style) yarn fix resource-optimization-common
- (fix) prettier & add prettier format script
- (refactor) Update workspaces/resource-optimization/package.json
- (refactor) updated api-reports.md
- (refactor) updates api-reports
- (fix) fixes the presentation in the last_reported column
- (fix) fixes code style issues
- (fix) code-style
- (refactor) Renames serializer.mjs to yaml.mjs
- (chore) Bumps Backstage to 1.29.2, see https://backstage.io/docs/releases/v1.28.0
- (fix) fixes the "publish check" CI step failure
- (fix) bug fixes
- (fix) Solves an issue related to the recommendation plotData object where the object keys were transformed incorrectly
- (refactor) Bumps @y0n1/json to 2.0.0
- (refactor) Adds msw for writing tests for the client proxy module
- (refactor) RHINENG-10789 added compont for showing box plot charts (#12)
- (refactor) RHINENG-10789 added compont for showing box plot charts
- (refactor) added missing keys for messages
- (style) prettier format and fix
- (fix) fixes types errors
- (fix) minor fixes
- (fix) minor fixes for showing YAML code
- (refactor) added charts for limit and request data, performace section
- (fix) adds yarn.lock
- (fix) fixes types errors
- (fix) styles for chart y axis numbering
- (fix) minor fixes
- (refactor) Adds tests for OptimizationsApiClientProxy.ts
- (docs) Adds READMEs and legal stuff (#15)
- (fix) fixes a typo
- (refactor) updates the readme
- (refactor) adds missing info about the service account role
- (refactor) Updates useRhdhTheme.ts (#16)
- (refactor) Removes the logic involved in enabling the RHDH theme based on an environment variable
- (refactor) updates devcontainer settings
- (refactor) updates the workspace readme
- (refactor) adds the changeset
- (refactor) RHINENG-11783 removed example component and searchFilter component (#17)
- (refactor) renames the plugin to redhat-resource-optimization (#18)
- (refactor) Addresses overlooked code style issues
- (refactor) updates CODEOWNERS
- (refactor) update yarn install stat

---------

Signed-off-by: Jonathan Kilzi <jkilzi@redhat.com>
Co-authored-by: Preeti Wadhwani <pwadhwan@redhat.com>
kurtaking pushed a commit to kurtaking/community-plugins that referenced this issue Aug 19, 2024
* adds the resource-optimization plugin files

- (refactor) Adds the new workspace's lockfile
- (refactor) adds the cost-management FE plugin
- (refactor) removes react-dom and react-router-dom from the peerDeps
- (refactor) updates yarn.lock
- (refactor) adds a basic app-config.yaml with untested proxy settings
- (refactor) adds cost-management-client
- (refactor) adds CostManagementIcon.tsx
- (refactor) adds sample packages/app and packages/backend
- (refactor) converts the cost-management client into the recommendations client
- (refactor) Introduces the combined cost-management client
- (fix) fixes issues with overlapping symbols
- (refactor) Refactors the cost-management plugin
- (refactor) Renames the cost-management-client package to cost-management-common
- (refactor) Renames src/api/ApiRefs.ts to src/api/ref.ts
- (refactor) simplifies getting the proxy's baseUrl
- (fix) fixes the client generator script
- (refactor) Adds changeOrigin to the proxy settings
- (refactor) created first page using material UI components
- (refactor) updated config for FE
- (refactor) removed custom webpack config file
- consuming API response in the table
- (refactor) added util method to handle API JSON response
- (refactor) introduces JSONUtils.toCamelCaseObjectKeys
- (refactor) adds new workspace for resource-optimization
- (refactor) adds placeholder for the FE and Common plug-ins
- (refactor) adds app-config.yaml
- (refactor) adds react-related missing peer-deps
- (refactor) adds resource-optimization-common as a dependency to the FE plug-in
- (refactor) adds a sample app and backend for showcase purposes
- (refactor) Adds also a PoC for the plugin icon
- (refactor) migrates the old common package to resource-optimization
- (fix) fixes an eslint issue related to lodash
- (refactor) updates the icon snapshot
- (refactor) updates json.test.ts
- (refactor) adds initial code for the BE plugin
- (fix) fixes the plugin icon
- (refactor) changes the plugin name in the navbar
- (refactor) adds 2 variants for the plugin icon
- (refactor) added UI for the first page of resource optimization plugin & fixed endpoint in config (backstage#2)
- (fix) fixes an issue in toCamelCaseObjectKeys function
- (refactor) introduces the resource-optimization-backend
- (fix) fixes the token renewal mechanism
- (refactor) Improved the keys serialization/deserialization issue (use camelCase when receiving, but snake_case when sending data)
- (refactor) The plugin can read the clientId and clientSecret from the app-config.yaml
- (refactor) Cleans up the ExampleComponent.tsx
- (refactor) makes ssoBaseUrl config optional
- (refactor) cleans up ExampleComponent.tsx a bit more
- (refactor) add assertion to ensure config is defined
- (refactor) replaces json utils with jsr:@y0n1/json
- (fix) : fix missing query params after token expires
- (feat) RHINENG-10603 first page table functionality - Pagination + Sorting (backstage#3)
- (feat) RHINENG-10603 first page table functionality
- (fix) minor fixes
- (refactor) code refactoring for landing page table
- (refactor) handling offset and sorting query params and code cleanup
- (refactor) disable third sort on table component
- (refactor) added unit tests and code cleanup
- (refactor) improved landing page layout
- (fix) fixes unit tests
- (feat) RHINENG-10603 landing page filters functionality (backstage#4)
- (feat) RHINENG-10603 added search filter component and filters functionality
- (fix) fixes the issue with the query params in getRecommendationsList
- (feat) RHINENG-10787 detail page top section and recommendation section (backstage#5)
- (feat) RHINENG-10787 detail page top section and UI
- (refactor) removed memoryUnit & cpuUnit from query
- (refactor) code cleanup
- (fix) fixes cluster filter and detail page values
- (refactor) added util method to handle YAML code generation from API response
- (refactor) ignores dynamic-plugins dist directory globally
- (refactor) adds janus-cli and export-dynamic scripts
- (refactor) removes ExampleFetchComponent
- (refactor) updates apis.ts
- (fix) do not convert the recommendations_id param to snake case
- (fix) fixes tsc, linting and formatting issues
- (fix) fixes some issues related to different types of dependencies
- (fix) pathes PlotDetails model
- (fix) stop depending on @mui/material and remove white bg from search filters
- (refactor) patches all the parameters of getRecommendationById
- (refactor) Applies required refactors for compatibility with dynamic plugins (backstage#6)
- (refactor) adds @backstage/backend-dynamic-feature-service
- (refactor) adds rhdh theme
- (refactor) adds devcontainer config
- (refactor) removes leftovers froms the cost-management workspace
- (refactor) updates resource-optimization frontend
- (refactor) adds configuration files for rhdh
- (refactor) Update workspaces/resource-optimization/plugins/resource-optimization/src/plugin.ts
- (refactor) adds devcontainer config
- (refactor) adds deployment scripts
- (refactor) adds export-dynamic top-level script
- (fix) fixes issues related to dependencies
- (refactor) removes the dynamic-plugins integration from the backend package
- (fix) fixes linting and type-checking issues
- (refactor) exports the icon from the front-end plugin
- (refactor) Updates yarn.lock
- (fix) fixes some type-only import statements
- (chore) sync @backstage-community/plugin-resource-optimization-backend
- (fix) fixes style issues
- (fix) fixes an issue related to the api-report generation, see: backstage/backstage#25671
- (refactor) renames useRhdhTheme.ts to rhdh-theme.ts
- (chore) cleans up devcontainer settings and code-workspace file
- (fix) fixes style issues and generates api-report
- (fix) fixes code style and adds the api-report
- (fix) fixes code style and adds the api-report
- (refactor) Updates resource-optimization-common
- (chore) Patches the generated client code with ts-morph
- (style) The code now complies with the rules of the api-report (via `yarn build:api-reports`)
- (refactor) Adds the api-report
- (refactor) Updates the openapi.yaml
- (refactor) Renames OrchestratorClient to OrchestratorApiClientProxy
- (refactor) Updates resource-optimization
- (refactor) Aligns the code according to the refactor in resource-optimization-common
- (fix) detail page tab routing (backstage#8)
- (fix) detail page tab routing
- (style) yarn fix resource-optimization-common
- (fix) prettier & add prettier format script
- (refactor) Update workspaces/resource-optimization/package.json
- (refactor) updated api-reports.md
- (refactor) updates api-reports
- (fix) fixes the presentation in the last_reported column
- (fix) fixes code style issues
- (fix) code-style
- (refactor) Renames serializer.mjs to yaml.mjs
- (chore) Bumps Backstage to 1.29.2, see https://backstage.io/docs/releases/v1.28.0
- (fix) fixes the "publish check" CI step failure
- (fix) bug fixes
- (fix) Solves an issue related to the recommendation plotData object where the object keys were transformed incorrectly
- (refactor) Bumps @y0n1/json to 2.0.0
- (refactor) Adds msw for writing tests for the client proxy module
- (refactor) RHINENG-10789 added compont for showing box plot charts (backstage#12)
- (refactor) RHINENG-10789 added compont for showing box plot charts
- (refactor) added missing keys for messages
- (style) prettier format and fix
- (fix) fixes types errors
- (fix) minor fixes
- (fix) minor fixes for showing YAML code
- (refactor) added charts for limit and request data, performace section
- (fix) adds yarn.lock
- (fix) fixes types errors
- (fix) styles for chart y axis numbering
- (fix) minor fixes
- (refactor) Adds tests for OptimizationsApiClientProxy.ts
- (docs) Adds READMEs and legal stuff (backstage#15)
- (fix) fixes a typo
- (refactor) updates the readme
- (refactor) adds missing info about the service account role
- (refactor) Updates useRhdhTheme.ts (backstage#16)
- (refactor) Removes the logic involved in enabling the RHDH theme based on an environment variable
- (refactor) updates devcontainer settings
- (refactor) updates the workspace readme
- (refactor) adds the changeset
- (refactor) RHINENG-11783 removed example component and searchFilter component (backstage#17)
- (refactor) renames the plugin to redhat-resource-optimization (backstage#18)
- (refactor) Addresses overlooked code style issues
- (refactor) updates CODEOWNERS
- (refactor) update yarn install stat

---------

Signed-off-by: Jonathan Kilzi <jkilzi@redhat.com>
Co-authored-by: Preeti Wadhwani <pwadhwan@redhat.com>
Signed-off-by: Kurt King <kurtaking@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants