Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.59 KiB
Newer Older
Bro Brian's avatar
1st
Bro Brian committed
.job_variables: &job_variables
  variables:
    GIT_SUBMODULE_STRATEGY: none
    GIT_DEPTH: 0
    PKG_TOKEN: ${PKG_TOKEN}

.job_rules_pushORweb: &job_rules_push
  rules:
    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG == null'
      changes:
          - trunk/PKGBUILD
    - if: '$CI_PIPELINE_SOURCE == "web"'


stages:
    - build
    - deploy
    - request
    - release

before_script:
  - cp ./pacman.conf /etc/pacman.conf.builder

package:
  <<: *job_rules_push
  stage: build
  script:
    - pkg-prepare.sh
    - pkg-build.sh
    - echo "PKG=$(ls /builds/pkg/obcommunity/${CI_PROJECT_NAME}/*.pkg.tar.xz)" >> package.env
    - echo "BASE_ARTIFACT_URL=${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/browse" >> package.env
  artifacts:
    name: $CI_PROJECT_NAME-$CI_COMMIT_SHORT_SHA
    paths:
     - "*.pkg.tar.xz"
    reports:
        dotenv: package.env
    expire_in: 8 mos



deploy:
  <<: *job_rules_push
  stage: deploy
  dependencies:
    - package
  script:
    - pkg-deploy.sh

create release:
  <<: *job_rules_push
  image: registry.gitlab.com/gitlab-org/release-cli:latest
  stage: release
  script:
    - echo "Creating a new release for commit $CI_PROJECT_NAME-$CI_COMMIT_SHORT_SHA..."
  needs:
    - job: package
      artifacts: true
  release:
    name: $CI_PROJECT_NAME-$CI_COMMIT_SHORT_SHA
    tag_name: $CI_COMMIT_SHORT_SHA
    ref: master
    description: "Created using the release-cli"
    assets:
      links:
        - name: 'Archlinux Pacman executable archive'
          url: "${BASE_ARTIFACT_URL}"


request:
  stage: build
  script:
    - pkg-build.sh
  only:
  - merge_requests