es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo utilizar la imagen entre pasos en Bitbucket Pipelines.

Estaría agradecido si alguien pudiera ayudarme a configurar bitbucket-pipeline para mi entorno de PHP. Lo que estoy intentando lograr es lo siguiente:

  1. Construir la imagen en el primer paso
  2. En el segundo paso, ejecutar algunas pruebas de calidad como pruebas unitarias, revisión de código, etc.
  3. Desplegar en el entorno de preproducción

Actualmente estoy atascado al reutilizar la imagen del primer paso. Así es como se ve mi archivo bitbucket-pipelines.yml:

image: php:7.4-apache
pipelines:
  branches:
    develop:
      - step:
          name: Construir imagen Docker
          caches:
            - composer
          script:
            - apt-get update && apt-get install -y unzip
            - docker-php-ext-install mysqli pdo_mysql json sockets
            - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
            - composer install
      - parallel:
          - step:
              caches:
                - composer
              name: Pruebas unitarias
              script:
                - vendor/bin/phpunit
          - step:
              caches:
                - composer
              name: Revisión de código
              script:
                - composer phpcs:all
      - step:
          name: Desplegar en preproducción
          script:
            - echo "Desplegando"

Lo que obtengo aquí es:
bash: vendor/bin/phpunit: No such file or directory – desde el paso “Pruebas unitarias”
y bash: composer: command not found – desde el paso “Revisión de código”

Ya intenté configurar el caché para docker/composer, guardar la imagen en el primer paso e importarla en el segundo, pero aún no funciona.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para reutilizar la imagen del primer paso, puedes usar la palabra clave “image” en los pasos siguientes. Aquí tienes un archivo actualizado de bitbucket-pipelines.yml que debería lograr el resultado deseado:

    image: php:7.4-apache
    pipelines:
      branches:
        develop:
          - step:
              name: Construir imagen de Docker
              caches:
                - composer
              script:
                - apt-get update && apt-get install -y unzip
                - docker-php-ext-install mysqli pdo_mysql json sockets
                - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
                - composer install
              artifacts:
                - docker-image.tar.gz
          - step:
              name: Pruebas unitarias
              caches:
                - composer
              image: <nombre_de_tu_imagen>
              script:
                - vendor/bin/phpunit
          - step:
              name: Analizador de código
              caches:
                - composer
              image: <nombre_de_tu_imagen>
              script:
                - composer phpcs:all
          - step:
              name: Implementar en preproducción
              image: <nombre_de_tu_imagen>
              script:
                - echo "Implementación"
    

    Este archivo especifica el uso de la misma imagen de PHP para todos los pasos al omitir la palabra clave “image” en el primer paso. La palabra clave “artifacts” se incluye en el primer paso para permitir la reutilización de la imagen en pasos posteriores. En los pasos siguientes, se incluye la palabra clave “image” para especificar que se debe utilizar la imagen creada en el primer paso. Esto debería resolver los mensajes de error que estás recibiendo.

Comments are closed.