stages:
  - Compile Stub & Generate Version Files
  - Generate Version Files
  - Compile Sources
  - Link
  - Generate ISO

compile_stub:
  stage: Compile Stub & Generate Version Files
  script: 
    - chmod +x ./compile_stub.sh
    - ./compile_stub.sh
  artifacts:
    paths:
      - lib/stub.o

vergen:
  stage: Compile Stub & Generate Version Files
  script: 
    - chmod +x ./compile_vergen.sh
    - ./compile_vergen.sh
  artifacts:
    paths:
      - release/*.svg
      - src/include/asuro.pas

compile_sources:
  stage: Compile Sources
  script:
    - chmod +x ./compile_sources.sh
    - ./compile_sources.sh
  artifacts:
    paths:
      - lib/*.o
  dependencies:
    - compile_stub
    - vergen
  needs:
    - vergen
    - compile_stub

link:
  stage: Link
  script:
    - chmod +x ./compile_link.sh
    - ./compile_link.sh
  artifacts:
    paths:
      - bin/kernel.bin
  dependencies:
    - compile_sources
  needs:
    - compile_sources

isogen:
  stage: Generate ISO
  script:
    - chmod +x ./compile_isogen.sh
    - ./compile_isogen.sh
  artifacts:
    paths:
      - ./Asuro.iso
  dependencies:
    - link
  needs:
    - link