Skip to content

Cum să folosești resursa Semver în Concourse CI

DodaTech Updated 2025-01-15 1 min read

In this tutorial, you'll learn about Cum să folosești resursa Semver în Concourse CI. We cover key concepts, practical examples, and best practices to help you understand and apply this topic effectively.

Resursa semver în Concourse CI menține un număr de versiune semantic (MAJOR.MINOR.PATCH) care poate fi incrementat automat la fiecare release.

Configurarea de bază

resources:
  - name: version
    type: semver
    source:
      initial_version: 1.0.0
      driver: git
      uri: https://github.com/dodatech/versions.git
      branch: main
      file: version.txt

Utilizarea unui bucket S3 ca driver

resources:
  - name: version
    type: semver
    source:
      driver: s3
      bucket: dodatech-versions
      key: current-version
      access_key_id: ((aws-access-key))
      secret_access_key: ((aws-secret-key))
      initial_version: 0.1.0

Incrementarea versiunii în pipeline

jobs:
  - name: release
    plan:
      - get: version
        params:
          bump: patch
      - task: build-release
        config:
          platform: linux
          image_resource:
            type: registry-image
            source: { repository: alpine }
          inputs:
            - name: version
          run:
            path: sh
            args:
              - -c
              - |
                echo "Versiune: $(cat version/number)"
                echo "Construire release..."

Output așteptat:

Versiune: 1.0.1
Construire release...

Bump implicit pe tip de commit

resources:
  - name: version
    type: semver
    source:
      initial_version: 1.0.0
      driver: git
      uri: https://github.com/dodatech/versions.git

jobs:
  - name: release-major
    plan:
      - get: version
        params:
          bump: major
      - put: version
        params:
          bump: major

Output:

Current version: 1.0.0
Bumped to: 2.0.0

Prevenire

  • Alege un driver de stocare persistent (git, s3, gcs) pentru versiuni
  • Inițializează cu initial_version la prima rulare
  • Folosește bump specific (major, minor, patch) în funcție de tipul modificărilor
  • Stochează versiunea într-un Repository separat de codul sursă

Greșeli comune

  1. Driver nepersistent -- versiunea se pierde la restartarea Concourse
  2. Bump greșit -- major în loc de patch poate semnala incorect breaking changes
  3. Acces concurent -- resursa semver gestionează lock, dar evită job-uri paralele care bump-uiesc aceeași versiune
Ce se întâmplă dacă două job-uri încearcă să bump-uiască simultan?

Resursa semver folosește lock pentru a preveni conflictele, dar recomandăm serializarea job-urilor de release.

Pot folosi pre-release tags (alpha, beta)?

Da, resursa semver suportă prefixe și sufixe pentru versiuni de pre-release.

Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. DodaTech uses semantic versioning across all its products.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro