GitLabCI atrifacts/release building

Hello! I have to say that I’m new to gitlab, so thanks in advance for the answers and the time taken.
Initially, my project structure is as follows:


The task is to create the correct ci-script, which:
a) throws files along the correct paths (I will attach the necessary structure below)
b) collects artifacts also in the correct order

specifically,
a) filename for download from ci/cd artifacts sholud contain “(my project name) + (commit version).zip”
(now my artifacts are called simply “artifacts”)
b) filename for download from release should contain “(my project name) + (version of release) + (commit version).zip”

content of both zip-files schould be:

  • bin (both of that .files living now in parent folder)
    • demo_run.bat
    • demo_run.sh
  • lib (now just calling repo)
    • all libs
  • src
  • read.me

How can I make a similar script and uncheck all the files from my project into a similar zip?