Vinod Kumar
Vinod Kumar

Reputation: 337

How to deploy react app in ubuntu server with bitbucket pipeline

I want to build and deploy my react app from my master branch I have managed to automate build but unable to transfer it into my server find my pipeline code below, I receive below error

pipelines:
  default:
    - step:
        name: Build Title
        script:
          - npm install
          - npm run build
          - mkdir packaged
          - tar -czvf packaged/package-${BITBUCKET_BUILD_NUMBER}.tar.gz -C build .
        artifacts:
          - packaged/**
    - step:
        name: Deploy to Web
        image: alpine
        trigger: manual
        deployment: production
        script:
          - mkdir upload
          - tar -xf packaged/package-${BITBUCKET_BUILD_NUMBER}.tar.gz -C upload
          - apk update && apk add openssh rsync
          - rsync -a  -e "ssh -o StrictHostKeyChecking=no" --delete upload/ $USERNAME@$SERVER:html/temp/react-${BITBUCKET_BUILD_NUMBER}
          - ssh -o StrictHostKeyChecking=no $USERNAME@$SERVER "rm -r html/www"
          - ssh -o StrictHostKeyChecking=no $USERNAME@$SERVER "mv 'html/temp/react-${BITBUCKET_BUILD_NUMBER}' 'var/www/html/deploy'"
          - ssh -o StrictHostKeyChecking=no $USERNAME@$SERVER "chmod -R u+rwX,go+rX,go-w html/www"

Error Log

+ rsync -a  -e "ssh -o StrictHostKeyChecking=no" --delete upload/ $USERNAME@$SERVER:html/temp/react-${BITBUCKET_BUILD_NUMBER}
load pubkey "/opt/atlassian/pipelines/agent/ssh/id_rsa": invalid format
rsync: mkdir "/$USERNAME/html/temp/react-15" failed: No such file or directory (2)
rsync error: error in file IO (code 11) at main.c(675) [Receiver=3.1.2]

Upvotes: 2

Views: 1906

Answers (2)

ryanoreilly
ryanoreilly

Reputation: 51

I was using that same script as well, below is what ended up working for me after a lot of banging my head against the screen, updating the image and adding upload artifacts seemed to be the kicker.

default:
    - step:
        name: Build React Project
        script:
            - npm install
            - npm run-script build
            - mkdir packaged
            - tar -czvf packaged/package-${BITBUCKET_BUILD_NUMBER}.tar.gz -C build .
        artifacts:
            - packaged/**
    - step:
        name: Deploy to Web
        image: atlassian/default-image:latest
        trigger: manual
        deployment: production
        script:
            - mkdir upload
            - tar -xf packaged/package-${BITBUCKET_BUILD_NUMBER}.tar.gz -C upload
            - rsync -a --delete upload/ $USERNAME@$SERVER:/home/temp/react-${BITBUCKET_BUILD_NUMBER}
            - ssh $USERNAME@$SERVER "rm -r /home/www"
            - ssh $USERNAME@$SERVER "mv '/home/temp/react-${BITBUCKET_BUILD_NUMBER}' '/home/www'"
            - ssh $USERNAME@$SERVER "chmod -R u +rwX,go+rX,go-w /home/www"
        artifacts:
            - upload/**

Upvotes: 1

dzhi
dzhi

Reputation: 1684

I noticed. this to happen only on Alpine-based images. For example, Debian images work fine. It also happens on Buddy, not just on Bitbucket. I expect this is upstream Alpine bug/issue.

Upvotes: 2

Related Questions