github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/.circleci/config.yml (about)

     1  version: 2
     2  
     3  .tags: &tags # tags need to be explicitly defined (whitelist)
     4    tags: { only: "/.*/" }
     5  
     6  .only-tags: &only-tags
     7    <<: *tags
     8    branches: { ignore: "/.*/" }
     9  
    10  .tag-or-main: &tag-or-main
    11    branches: { only: main }
    12    <<: *tags
    13  
    14  .no-main: &no-main # contrary to tags, the branches must be excluded
    15    branches: { ignore: main }
    16  
    17  workflows:
    18    version: 2
    19    default:
    20      jobs:
    21        # publish jobs depend on this as well,
    22        # thus tags need to be allowed for these
    23        - test: { filters: { <<: *tags } }
    24  
    25        - build/promtail-windows:
    26            requires: [test]
    27  
    28        - build/docker-driver:
    29            requires: [test]
    30            filters: { <<: *no-main }
    31        - publish/docker-driver:
    32            requires: [test]
    33            filters: { <<: *tag-or-main }
    34  
    35  
    36  # https://circleci.com/blog/circleci-hacks-reuse-yaml-in-your-circleci-config-with-yaml/
    37  .defaults: &defaults
    38    docker:
    39      - image: grafana/loki-build-image:0.19.0
    40    working_directory: /src/loki
    41  
    42  jobs:
    43    test:
    44      <<: *defaults
    45      steps:
    46        - checkout
    47  
    48    # Promtail
    49    build/promtail-windows:
    50      <<: *defaults
    51      steps:
    52        - checkout
    53        - setup_remote_docker
    54        - run:
    55            name: build
    56            command: make GOOS=windows GOGC=10 promtail
    57  
    58    # Docker driver
    59    build/docker-driver:
    60      <<: *defaults
    61      steps:
    62        - checkout
    63        - setup_remote_docker
    64        - run:
    65            name: docker-driver
    66            command: make docker-driver
    67  
    68    publish/docker-driver:
    69      <<: *defaults
    70      steps:
    71        - checkout
    72        - setup_remote_docker
    73        - run:
    74            name: login
    75            command: docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
    76        - run:
    77            name: docker-driver
    78            command: make docker-driver-push
    79