When  bash  is  invoked as an interactive login shell, or as a non-interactive shell with the --login
       option, it first reads and executes commands from the file /etc/profile, if that file exists.   After
       reading  that  file,  it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and
       reads and executes commands from the first one that exists and is readable.

Interactive login shell: login to linux through ssh or desktop environment like KDE/Gnome/XFCE

Non-interactive shell: bash script

From exmaple above we can see interactive shell will source /etc/profile and /home/j/.bash_profile(if exist),no-interactive will NOT source any profiles

[j@server01 ~]$ bash --login
Sourced /etc/profile...
Sourced /home/j/.bash_profile
[j@server01 ~]$ 
[j@server01 ~]$ rm -f .bash_profile 
[j@server01 ~]$ bash --login
Sourced /etc/profile...
Sourced /home/j/.bash_login 
[j@server01 ~]$ rm -f .bash_login 
[j@server01 ~]$ bash --login
Sourced /etc/profile...
Sourced /home/j/.profile
[j@server01 ~]$ 

Also as the manual says , if no .bash_profile .bash_login will be source , if no .bash_login then .profile will be sourced