stages:
  - lint
  - build

variables:
  GIT_STRATEGY: clone
  GIT_DEPTH: "50"

default:
    # Make sure master points to the correct upstream commit
    before_script:
      - >
        git fetch -nq $CI_MERGE_REQUEST_PROJECT_URL
        +refs/heads/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME:refs/heads/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME

lint:
  stage: lint
  image: alpinelinux/apkbuild-lint-tools:latest
  script:
    - changed-aports $CI_MERGE_REQUEST_TARGET_BRANCH_NAME | lint
  allow_failure: true
  only:
    - merge_requests
  tags:
    - docker-alpine
    - x86_64

.build:
  stage: build
  image: alpinelinux/alpine-gitlab-ci:latest
  script:
    - build.sh
    - cp -ar ~/packages packages/
    - mkdir -p keys
    - cp ~/.abuild/*.rsa.pub keys/
  artifacts:
    paths:
      - packages/
      - keys/
    expire_in: 1 day
  only:
    - merge_requests

build-x86_64:
  extends: .build
  artifacts:
    name: MR${CI_MERGE_REQUEST_ID}_x86_64
  tags:
    - docker-alpine
    - ci-build
    - x86_64

build-x86:
  extends: .build
  image:
    name: alpinelinux/alpine-gitlab-ci:latest-x86
    entrypoint: ["linux32", "sh", "-c"]
  artifacts:
    name: MR${CI_MERGE_REQUEST_ID}_x86
  tags:
    - docker-alpine
    - ci-build
    - x86

build-s390x:
  extends: .build
  artifacts:
    name: MR${CI_MERGE_REQUEST_ID}_s390x
  tags:
    - docker-alpine
    - ci-build
    - s390x

build-ppc64le:
  extends: .build
  artifacts:
    name: MR${CI_MERGE_REQUEST_ID}_ppc64le
  tags:
    - docker-alpine
    - ci-build
    - ppc64le

build-aarch64:
  extends: .build
  artifacts:
    name: MR${CI_MERGE_REQUEST_ID}_aarch64
  tags:
    - docker-alpine
    - ci-build
    - aarch64

build-armv7:
  extends: .build
  image:
    name: alpinelinux/alpine-gitlab-ci:latest-armv7
    entrypoint: ["linux32", "sh", "-c"]
  artifacts:
    name: MR${CI_MERGE_REQUEST_ID}_armv7
  tags:
    - docker-alpine
    - ci-build
    - armv7
