Pet*_*nko 2 continuous-integration node.js npm bitbucket-pipelines
我正在使用 React 应用程序 - CRA 的 CI/CD 的标准 bitbucket 管道模板。
我postbuild在 React App 中有设置步骤来运行简单的 bash 脚本,该脚本只是更改构建文件夹中的文件结构。
在 package.json 中:
"postbuild": "postbuild.sh"
Run Code Online (Sandbox Code Playgroud)
位桶管道.yml:
# Template React Deploy
# This template allows you to deploy your React app to an AWS S3 bucket and invalidate the old AWS Cloudfront distribution.
# The workflow allows running tests, code linting and security scans on feature branches (as well as master).
# The react app will be validated, deployed to S3 and trigger an AWS Cloudfront distribution invalidation to refresh the CDN caches after the code is merged to master.
# Prerequisites: $AWS_ACCESS_KEY_ID, $AWS_SECRET_ACCESS_KEY setup in the Deployment variables.
# For advanced cases, please, follow examples from the pipe's:
# README https://bitbucket.org/atlassian/aws-s3-deploy/src/master/README.md
# README https://bitbucket.org/atlassian/aws-cloudfront-invalidate/src/master/README.md
image: node:10.15.3
# Workflow Configuration
pipelines:
default:
- parallel:
- step:
name: Build and Test
caches:
- node
script:
- npm install
# CI=true in default variables for Bitbucket Pipelines https://support.atlassian.com/bitbucket-cloud/docs/variables-in-pipelines/
- npm test
- step:
name: Lint the node package
script:
# Run your linter of choice here
- npm install eslint
- npx eslint src
caches:
- node
branches:
master:
- parallel:
- step:
name: Build and Test
caches:
- node
script:
- npm install
# CI=true in default variables for Bitbucket Pipelines https://support.atlassian.com/bitbucket-cloud/docs/variables-in-pipelines/
- npm test
- chmod +x ./postbuild.sh
- npm run build
artifacts:
- build/**
- step:
name: Security Scan
script:
# Run a security scan for sensitive data.
# See more security tools at https://bitbucket.org/product/features/pipelines/integrations?&category=security
- pipe: atlassian/git-secrets-scan:0.4.3
- step:
name: Deploy to Production
deployment: Production
trigger: manual
clone:
enabled: false
script:
# sync your files to S3
- pipe: atlassian/aws-s3-deploy:0.4.4
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
S3_BUCKET: 'my-bucket-name'
LOCAL_PATH: 'build'
# triggering a distribution invalidation to refresh the CDN caches
- pipe: atlassian/aws-cloudfront-invalidate:0.1.1
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
DISTRIBUTION_ID: '123xyz'
Run Code Online (Sandbox Code Playgroud)
build一切顺利,但后来postbuild我遇到了这个错误:
> @plutora/client@0.1.0 postbuild /opt/atlassian/pipelines/agent/build
> postbuild.sh
sh: 1: postbuild.sh: not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! @plutora/client@0.1.0 postbuild: `postbuild.sh`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the @plutora/client@0.1.0 postbuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-11-11T12_04_22_330Z-debug.log
Run Code Online (Sandbox Code Playgroud)
我通过运行脚本解决了这个问题/bin/bash:
...
script:
- npm install
- npm test
- chmod +x ./postbuild.sh
- npm run build
- /bin/bash postbuild.sh
...
Run Code Online (Sandbox Code Playgroud)
这有帮助。
| 归档时间: |
|
| 查看次数: |
4218 次 |
| 最近记录: |