Skip to content

Conversation

@mike-hoang
Copy link
Contributor

What does this PR do?

Adds an enricher for the dockerfile component which allows Docker components to be found.

Implemented following the proposal here: https://github.com/devfile/alizer/blob/main/docs/proposals/dockerfile_component_detection.md

Which issue(s) does this PR fix

fixes: devfile/api#1178
epic: devfile/api#1159

PR acceptance criteria

Testing and documentation do not need to be complete in order for this PR to be approved. We just need to ensure tracking issues are opened.

  • Unit/Functional tests

  • Documentation

How to test changes / Special notes to the reviewer

@mike-hoang mike-hoang requested a review from thepetk July 23, 2023 23:59
@codecov
Copy link

codecov bot commented Jul 24, 2023

Codecov Report

❗ No coverage uploaded for pull request base (main@e55ee31). Click here to learn what that means.
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #14   +/-   ##
=======================================
  Coverage        ?   37.91%           
=======================================
  Files           ?        9           
  Lines           ?     1221           
  Branches        ?        0           
=======================================
  Hits            ?      463           
  Misses          ?      729           
  Partials        ?       29           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

@thepetk thepetk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think a good idea could be to add 2 more resources for this case. The 2 resources can ensure that our detection flow works. As it is designed we have:

  1. FolderA and FolderB are children of root (/)
root -> FolderA contains a component 
| -> FolderB contains python files

The result will be 2 components detected: One in FolderA and one in FolderB

  1. FolderB is child of folderA
root -> FolderA (contains a component) -> FolderB (contains python files)

The result will be 1 component detected in FolderA

  1. FolderA is child of FolderB:
root -> FolderB (contains python files) -> FolderA (contains a component)

The result will be 1 component detected in folderA

Copy link
Contributor

@thepetk thepetk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we apply the proposed changes we should update the tests too

@mike-hoang mike-hoang force-pushed the API-1178 branch 2 times, most recently from 91212dd to 4842a45 Compare July 25, 2023 13:28
@mike-hoang mike-hoang requested a review from thepetk July 25, 2023 13:30
Signed-off-by: Michael Hoang <mhoang@redhat.com>
Copy link
Contributor

@thepetk thepetk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm Very nice addition of tests for the component detection flow. They were missing for sure.

@openshift-ci openshift-ci bot added the lgtm label Jul 25, 2023
@openshift-ci
Copy link

openshift-ci bot commented Jul 25, 2023

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: mike-hoang, thepetk

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@mike-hoang mike-hoang merged commit 7f521b2 into devfile:main Jul 25, 2023
thepetk referenced this pull request in thepetk/devfile-alizer Jul 27, 2023
Signed-off-by: Michael Hoang <mhoang@redhat.com>
Signed-off-by: thepetk <thepetk@gmail.com>
thepetk referenced this pull request in thepetk/devfile-alizer Aug 1, 2023
* Add binaries to every new release (devfile#237)

* Add release yaml to workflows

Signed-off-by: thepetk <thepetk@gmail.com>

* Remove autogeneration of release notes

Signed-off-by: thepetk <thepetk@gmail.com>

* Update readme

Signed-off-by: thepetk <thepetk@gmail.com>

* Update Readme.md

Signed-off-by: thepetk <thepetk@gmail.com>

---------

Signed-off-by: thepetk <thepetk@gmail.com>

* flattening go dir (#1)

Signed-off-by: Michael Hoang <mhoang@redhat.com>
Signed-off-by: thepetk <thepetk@gmail.com>

* Update realease.yaml (#2)

Signed-off-by: thepetk <thepetk@gmail.com>

* adding proposal for dockerfile components (#3)

Signed-off-by: Michael Hoang <mhoang@redhat.com>
Signed-off-by: thepetk <thepetk@gmail.com>

* Merge all test resources (#6)

* Update test paths

Signed-off-by: thepetk <thepetk@gmail.com>

* Update angular test resource

Signed-off-by: thepetk <thepetk@gmail.com>

* Remove projectAngularjs

Signed-off-by: thepetk <thepetk@gmail.com>

* Update containerfile test

Signed-off-by: thepetk <thepetk@gmail.com>

* Update django test resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Update docker compose test resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Update tests for docker compose with ports

Signed-off-by: thepetk <thepetk@gmail.com>

* Update test project dockerfile

Signed-off-by: thepetk <thepetk@gmail.com>

* Update express js port tests

Signed-off-by: thepetk <thepetk@gmail.com>

* Update flask port tests

Signed-off-by: thepetk <thepetk@gmail.com>

* Update golang test resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Update jboss test resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Update laravel test resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Update test micronaut resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Update container docker file nested tests

Signed-off-by: thepetk <thepetk@gmail.com>

* Update nuxt and next js tests

Signed-off-by: thepetk <thepetk@gmail.com>

* Update port test for quarkus

Signed-off-by: thepetk <thepetk@gmail.com>

* Update reactjs tests

Signed-off-by: thepetk <thepetk@gmail.com>

* Remove port test project quarkus

Signed-off-by: thepetk <thepetk@gmail.com>

* Update rest of port tests

Signed-off-by: thepetk <thepetk@gmail.com>

* Fix issue with ip host go format

Signed-off-by: thepetk <thepetk@gmail.com>

* Update test resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Finalize new component detection format

Signed-off-by: thepetk <thepetk@gmail.com>

---------

Signed-off-by: thepetk <thepetk@gmail.com>

* Add min max cli args (#5)

* Create dependabot.yml

Signed-off-by: thepetk <thepetk@gmail.com>

* Update dependabot.yml

Signed-off-by: thepetk <thepetk@gmail.com>

* Update realease.yaml (#2)

Signed-off-by: thepetk <thepetk@gmail.com>

* adding proposal for dockerfile components (#3)

Signed-off-by: Michael Hoang <mhoang@redhat.com>
Signed-off-by: thepetk <thepetk@gmail.com>

* Merge all test resources (#6)

* Update test paths

Signed-off-by: thepetk <thepetk@gmail.com>

* Update angular test resource

Signed-off-by: thepetk <thepetk@gmail.com>

* Remove projectAngularjs

Signed-off-by: thepetk <thepetk@gmail.com>

* Update containerfile test

Signed-off-by: thepetk <thepetk@gmail.com>

* Update django test resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Update docker compose test resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Update tests for docker compose with ports

Signed-off-by: thepetk <thepetk@gmail.com>

* Update test project dockerfile

Signed-off-by: thepetk <thepetk@gmail.com>

* Update express js port tests

Signed-off-by: thepetk <thepetk@gmail.com>

* Update flask port tests

Signed-off-by: thepetk <thepetk@gmail.com>

* Update golang test resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Update jboss test resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Update laravel test resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Update test micronaut resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Update container docker file nested tests

Signed-off-by: thepetk <thepetk@gmail.com>

* Update nuxt and next js tests

Signed-off-by: thepetk <thepetk@gmail.com>

* Update port test for quarkus

Signed-off-by: thepetk <thepetk@gmail.com>

* Update reactjs tests

Signed-off-by: thepetk <thepetk@gmail.com>

* Remove port test project quarkus

Signed-off-by: thepetk <thepetk@gmail.com>

* Update rest of port tests

Signed-off-by: thepetk <thepetk@gmail.com>

* Fix issue with ip host go format

Signed-off-by: thepetk <thepetk@gmail.com>

* Update test resources

Signed-off-by: thepetk <thepetk@gmail.com>

* Finalize new component detection format

Signed-off-by: thepetk <thepetk@gmail.com>

---------

Signed-off-by: thepetk <thepetk@gmail.com>

* Run tidy

Signed-off-by: thepetk <thepetk@gmail.com>

* Update devfile_recognizer and models

Signed-off-by: thepetk <thepetk@gmail.com>

* Update cli

Signed-off-by: thepetk <thepetk@gmail.com>

* Update docs

Signed-off-by: thepetk <thepetk@gmail.com>

* Add test cases for versions cli args

Signed-off-by: thepetk <thepetk@gmail.com>

* Fix sec alert

Signed-off-by: thepetk <thepetk@gmail.com>

* Fix typo

Signed-off-by: thepetk <thepetk@gmail.com>

---------

Signed-off-by: thepetk <thepetk@gmail.com>
Signed-off-by: Michael Hoang <mhoang@redhat.com>
Co-authored-by: Michael Hoang <35011707+mike-hoang@users.noreply.github.com>
Signed-off-by: thepetk <thepetk@gmail.com>

* Remove dependabot (#10)

Signed-off-by: thepetk@gmail.com

Signed-off-by: thepetk@gmail.com
Signed-off-by: thepetk <thepetk@gmail.com>

* Minor update on devfiles versioning (#11)

* Remove dependabot

Signed-off-by: thepetk@gmail.com
Signed-off-by: thepetk <thepetk@gmail.com>

* Add versions to alizer devfile response

Signed-off-by: thepetk <thepetk@gmail.com>

* Update readme.md

Signed-off-by: thepetk <thepetk@gmail.com>

* Update naming and devfile models in the proposal

Signed-off-by: thepetk <thepetk@gmail.com>

* Update code naming

Signed-off-by: thepetk <thepetk@gmail.com>

* Update tests after renaming

Signed-off-by: thepetk <thepetk@gmail.com>

---------

Signed-off-by: thepetk@gmail.com
Signed-off-by: thepetk <thepetk@gmail.com>

* fixing gosec alerts (#12)

Signed-off-by: Michael Hoang <mhoang@redhat.com>
Signed-off-by: thepetk <thepetk@gmail.com>

* Add test coverage check to CI.yaml (#13)

* Add test coverage workflow

Signed-off-by: thepetk <thepetk@gmail.com>

* Update ci.yaml

Signed-off-by: thepetk <thepetk@gmail.com>

* Add separate check for code coverage

Signed-off-by: thepetk <thepetk@gmail.com>

* Move code report in ci file

Signed-off-by: thepetk <thepetk@gmail.com>

* Add .codecov.yaml

Signed-off-by: thepetk <thepetk@gmail.com>

* Update workflow

Signed-off-by: thepetk <thepetk@gmail.com>

* Bump up setup-go

Signed-off-by:thepetk <thepetk@gmail.com>

---------

Signed-off-by: thepetk <thepetk@gmail.com>

* adding support for dockerfile components (#14)

Signed-off-by: Michael Hoang <mhoang@redhat.com>
Signed-off-by: thepetk <thepetk@gmail.com>

* Add test coverage workflow

Signed-off-by: thepetk <thepetk@gmail.com>

* Update ci.yaml

Signed-off-by: thepetk <thepetk@gmail.com>

* Add separate check for code coverage

Signed-off-by: thepetk <thepetk@gmail.com>

* Move code report in ci file

Signed-off-by: thepetk <thepetk@gmail.com>

* Update workflow

Signed-off-by: thepetk <thepetk@gmail.com>

* Bump up setup-go

Signed-off-by:thepetk <thepetk@gmail.com>
Signed-off-by: thepetk <thepetk@gmail.com>

* Make DownloadDevFileTypesFromRegistry public

Signed-off-by: thepetk <thepetk@gmail.com>

* Add devfile.yaml schema

Signed-off-by: thepetk <thepetk@gmail.com>

* Add go script for generating registry entries json

Signed-off-by: thepetk <thepetk@gmail.com>

* Implement nightly run script and workflow

Signed-off-by: thepetk <thepetk@gmail.com>

* Update go mod

Signed-off-by: thepetk <thepetk@gmail.com>

* Add new schedule to registry check

signed-off-by: thepetk <thepetk@gmail.com>
Signed-off-by: thepetk <thepetk@gmail.com>

* Update workflow name

Signed-off-by: thepetk <thepetk@gmail.com>

* Update go mod

Signed-off-by: thepetk <thepetk@gmail.com>

* Update funcs in order to be mockable

Signed-off-by: thepetk <thepetk@gmail.com>

* Move devfile_recognizer_test.go to recognizer dir

Signed-off-by: thepetk <thepetk@gmail.com>

* Update docstring of script

Signed-off-by: thepetk <thepetk@gmail.com>

* Add tests for check_registry.go

Signed-off-by: thepetk <thepetk@gmail.com>

* Fix test paths

Signed-off-by: thepetk <thepetk@gmail.com>

* Remove unecessary logging

Signed-off-by: thepetk <thepetk@gmail.com>

* Remove binary

Signed-off-by: thepetk <thepetk@gmail.com>

* Use make build instead of go command

Signed-off-by: thepetk <thepetk@gmail.com>

* Further fixes on the workflow

Signed-off-by: thepetk <thepetk@gmail.com>

---------

Signed-off-by: thepetk <thepetk@gmail.com>
Signed-off-by: Michael Hoang <mhoang@redhat.com>
Signed-off-by: thepetk@gmail.com
Co-authored-by: Michael Hoang <35011707+mike-hoang@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Alizer Dockerfile component

2 participants