Premisoft
Premisoft

Reputation: 157

Can someone look at my yaml file for code deployment using Bitbucket Pipelines?

This is my first attempt at setting up pipelines or even using any CI/CD tool. So, reading the documentation at Bitbucket, I added the bitbucket-pipelines.yml file in the root of my Laravel application for a build. Here is the file.

image: php:7.4-fpm

pipelines:
  default:
    - step:
        name: Build and test
        caches:
          - composer
        script:
          - apt-get update && apt-get install -qy git curl libmcrypt-dev mariadb-client ghostscript
          - yes | pecl install mcrypt-1.0.3
          - docker-php-ext-install pdo_mysql bcmath exif
          - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --file           name=composer
          - composer install
          - ln -f -s .env.pipelines .env
          - php artisan migrate
          - ./vendor/bin/phpunit
        services:
          - mysql
          - redis
definitions:
  services:
    mysql:
      image: mysql:5.7
      environment:
        MYSQL_DATABASE: "laravel-pipeline"
        MYSQL_RANDOM_ROOT_PASSWORD: "yes"
        MYSQL_USER: "homestead"
        MYSQL_PASSWORD: "secret"
    redis:
      image: redis   

The above works fine in building the application, running tests,etc. But when I add the below to deploy, using the scp pipe, I get a notice saying either I need to include an image or at times the notice says there is a bad indentation of a mapping entry.

- step:
      name: Deploy to test
      deployment: test
      # trigger: manual  # Uncomment to make this a manual deployment.
    script:
      - pipe: atlassian/scp-deploy:0.3.13
        variables:
          USER: '${remoteUser}'
          SERVER: '${server}'
          REMOTE_PATH: '${remote}'
          LOCAL_PATH: '${BITBUCKET_CLONE_DIR}/*'

I don't really know yaml, and this is my first time working with a CI/CD tool so I am lost. Can someone guide me in what I am doing wrong?

Upvotes: 0

Views: 876

Answers (1)

Duje Basic
Duje Basic

Reputation: 26

Your indentation for name and deployment is not the same as for the script. Try putting it all on the same indentation like this.

- step:
    name: Deploy to test
    deployment: test
    script:
      - pipe: atlassian/scp-deploy:0.3.13
        variables:
          USER: '${remoteUser}'
          SERVER: '${server}'
          REMOTE_PATH: '${remote}'
          LOCAL_PATH: '${BITBUCKET_CLONE_DIR}/*'

Upvotes: 1

Related Questions