Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.86 KiB
Newer Older
.job_variables: &job_variables
  variables:
    GIT_SUBMODULE_STRATEGY: none
    GIT_DEPTH: 0
    PKG_TOKEN: ${PKG_TOKEN}

.job_rules_push: &job_rules_push
  rules:
    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG == null'

.job_rules_schedule: &job_rules_schedule
  rules:
    - if: '$CI_PIPELINE_SOURCE == "schedule"'

.job_rules_web: &job_rules_web
  rules:
    - if: '$CI_PIPELINE_SOURCE == "web"'

.job_rules_pipeline: &job_rules_pipeline
  rules:
    - if: '$CI_PIPELINE_SOURCE == "pipeline"'

.copy_files: &copy_files
    before_script:
      - mkdir -p /etc/pkg
      - cp ./pkg.cfg /etc/pkg/pkg.cfg
      - cp ./pacman.conf.builder /etc/pacman.conf.builder

Eric Vidal's avatar
Eric Vidal committed
stages:
  - update
  - build
  - rebuild
  - deploy
Eric Vidal's avatar
Eric Vidal committed

update:
  stage: update
  <<: *job_variables
  <<: *job_rules_schedule
  <<: *copy_files
Eric Vidal's avatar
Eric Vidal committed
  script:
    - apkg-update.sh
build:
  stage: build
  <<: *job_variables
  <<: *job_rules_push
  <<: *copy_files
  script:
    - apkg-prepare.sh
    - apkg-build.sh
    - apkg-tag.sh
Eric Vidal's avatar
Eric Vidal committed
  artifacts:
    name: $CI_PROJECT_NAME-$CI_COMMIT_SHORT_SHA
Eric Vidal's avatar
Eric Vidal committed
    paths:
      - "*.pkg.tar.xz"
      - build.env
rebuild:from:
  stage: rebuild
  <<: *job_variables
  <<: *job_rules_pipeline
  <<: *copy_files
  script:
    - apkg-rebuild.sh
  artifacts:
    name: $CI_PROJECT_NAME-$CI_COMMIT_SHORT_SHA
    paths:
      - "*.pkg.tar.xz"
rebuild:dynamic:
  stage: rebuild
  <<: *job_rules_push
  <<: *copy_files
  needs: ["build"]
Eric Vidal's avatar
Eric Vidal committed
  script:
    - apkg-generate.sh > dynamic-config.yml
  artifacts:
    paths:
      - dynamic-config.yml

rebuild:packages:
  stage: rebuild
  <<: *job_variables
  <<: *job_rules_push
  needs: ["rebuild:dynamic","build"]
  trigger:
    include:
      - artifact: dynamic-config.yml
        job: rebuild:dynamic
    strategy: depend
Eric Vidal's avatar
Eric Vidal committed

deploy:
  <<: *job_variables
  <<: *job_rules_push
Eric Vidal's avatar
Eric Vidal committed
  stage: deploy
  needs: ["build","rebuild:packages"]
Eric Vidal's avatar
Eric Vidal committed
  script:
    - apkg-deploy.sh