stages:
  - Compile Versions
  - Compile Sources
  - Link
  - Generate Documentation
  - Deploy

cache:
  - key: ${CI_COMMIT_REF_SLUG}
    paths:
      - lib/*.o
      - bin/kernel.bin
      - doc

before_script:
  - chmod +x *.sh

versions:
  stage: Compile Versions
  script:
    - ./compile_vergen.sh
  artifacts:
    paths:
      - release/*.svg
      - src/include/asuro.pas

compile_sources:
  stage: Compile Sources
  script:
    - rm -f lib/*.so
    - ./compile_sources.sh
  needs:
    - versions

link:
  stage: Link
  script:
    - ./compile_stub.sh
    - ./compile_link.sh
  needs:
    - versions
    - compile_sources

isogen:
  stage: Deploy
  script:
    - ./compile_isogen.sh
    - ./compile_sumgen.sh
  artifacts:
    paths:
      - ./Asuro.iso
      - ./release/checksum.svg
  needs:
    - link

docgen:
  stage: Generate Documentation
  only:
    - master
    - develop
  script:
    - ./compile_sourcelist.sh
    - ./compile_docs.sh
    # Remove comments when we want to use gitlab pages.
    #- cp doc public
  allow_failure: true
  artifacts:
    paths:
      - doc
      #- public/*
      #- ./sources.list
  needs:
    - versions