Skip to content
Snippets Groups Projects
.gitlab-ci.yml 6.41 KiB
stages:
  - test
  - release
  - build

services:
  - name: ghcr.io/griefed/gitlab-ci-cd:2.0.8
    alias: docker

workflow:
  rules:
    - if: '$CI_MERGE_REQUEST_EVENT_TYPE == "detached"'
      when: never
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
      when: never
    - when: always

test quasar:
  image: ghcr.io/griefed/gitlab-ci-cd:2.0.8
  stage: test
  cache:
    paths:
      - node_modules/
  before_script:
    - npm install
    - rm -Rf dist
  script:
    - quasar build

test docker:
  stage: test
  image: ghcr.io/griefed/gitlab-ci-cd:2.0.8
  variables:
    project_name: $CI_PROJECT_NAME
    SEMANTIC_RELEASE_PACKAGE: $CI_PROJECT_NAME
  before_script:
    - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    - docker buildx create --use --name grfdbuilder
  script:
    - docker buildx build --no-cache --platform linux/amd64,linux/arm/v7,linux/arm64
      --build-arg BRANCH_OR_TAG=$CI_COMMIT_REF_NAME
      --build-arg HOSTER=$CI_SERVER_HOST
      --file Dockerfile .
  rules:
    - if: '$CI_SERVER_HOST == "git.griefed.de"'

pages:
  image: ghcr.io/griefed/gitlab-ci-cd:2.0.8
  stage: build
  cache:
    paths:
      - node_modules/
  before_script:
    - npm install
    - rm -Rf dist
  script:
    - quasar build
    - cp -Rf dist/spa/* public/
  artifacts:
    paths:
      - public
    expire_in: 1 week

release:
  needs: ['test docker','test quasar']
  stage: release
  image: ghcr.io/griefed/gitlab-ci-cd:2.0.8
  variables:
    project_name: $CI_PROJECT_NAME
    SEMANTIC_RELEASE_PACKAGE: $CI_PROJECT_NAME