我尝试使用 github 操作部署一个 jar 文件。我面临的问题是 github 操作显示部署成功,但是当我尝试检查更改时,发现输出中没有新的更改。但是,当我尝试从服务器手动部署相同的东西时,它会显示确切的更改。下面是我使用的 github 工作流程。
部署:
需要:[建造]
运行:ubuntu-latest
环境:
DEV_AWS_INSTANCE_SG_ID:${{secrets.DEV_INSTANCE_SG}}
脚步:
- 名称:配置 aws 凭据
使用:aws-actions/configure-aws-credentials@v1
和:
aws-access-key-id: ${{secrets.AWS_ACCESS_KEY_ID}}
aws-secret-access-key:${{secrets.AWS_SECRET_ACCESS_KEY}}
AWS 区域:ap-south-1
- 名称:获取跑步者的IP地址
编号: IP
使用:haythem/[email protected]
- 名称:白名单亚军IP地址
运行: |
aws ec2 授权安全组入口
--group-id $DEV_AWS_INSTANCE_SG_ID
--协议TCP
--端口 22
--cidr ${{steps.ip.outputs.ipv4}}/32
- 名称:ssh-deploy
使用:appleboy/ssh-action@master
和:
主机:${{secrets.DEV_HOST}}
用户名:${{secrets.DEV_USERNAME}}
密钥:${{secrets.DEV_KEY}}
端口:${{secrets.DEV_PORT}}
脚本: |
CD ${{secrets.DEV_APP_FOLDER}}
cp ${{secrets.DEV_APP_FOLDER}}/example-SNAPSHOT.jar ${{secrets.DEV_BU_FOLDER}}/example-SNAPSHOT_$(date +%Y-%m-%d_%H-%M-%S).jar
rm ${{secrets.DEV_APP_FOLDER}}/example-SNAPSHOT.jar
导出 DB_HOST=${{secrets.DEV_DB_HOST}}
导出 DB_USER=${{secrets.DEV_DB_USER}}
export DB_PASS='${{secrets.DEV_DB_PASS}}'
aws s3 cp s3://${{secrets.AWS_BUCKET_NAME}}/example-SNAPSHOT.jar ${{secrets.DEV_APP_FOLDER}}/example-SNAPSHOT.jar
chmod -R 777 示例-SNAPSHOT.jar
npx 杀死端口 ${{secrets.APP_PORT}}
nohup java -DB_HOST=${{secrets.DEV_DB_HOST}} -DB_USER=${{secrets.DEV_DB_USER}} -DB_PASS='${{secrets.DEV_DB_PASS}}' -DSENDGRID_API_KEY='S${{secrets.SENGRID_API_KEY}}' -DAWS_S3_BUCKET_NAME='${{secrets.DAWS_S3_BUCKET}}' -DAWS_S3_OBJECT_KEY='${{secrets.DAWS_S3_OBJECT_KEY}}' -jar ${{secrets.DEV_APP_FOLDER}}/example-SNAPSHOT.jar > /dev/null 2>&1 &
- name: revoke runner ip address
run: |
aws ec2 revoke-security-group-ingress \
--group-id $DEV_AWS_INSTANCE_SG_ID \
--protocol tcp \
--port 22 \
--cidr ${{steps.ip.outputs.ipv4}}/32
如何将这个 jar 文件部署到可以反映输出的服务器。