使用Github-Action持续部署Springboot或vue

这篇具有很好参考价值的文章主要介绍了使用Github-Action持续部署Springboot或vue。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

GitHub Actions 是 GitHub 提供的一项持续集成 (CI) 和持续部署 (CD) 服务。它允许你在代码仓库中定义和运行自动化的工作流程,以响应存储库中的事件或调度。GitHub Actions 可以用于构建、测试、打包和部署项目,也可以执行其他自动化任务。

详细github action相关信息请看最底部

第一步需要先配置secrets,保证我们的服务器信息不暴露

GitHub Actions 中的 secrets 和 variables 都是用于存储和访问敏感信息或配置的机制

使用Github-Action持续部署Springboot或vue,CI/CD,github,ci/cd,spring boot

因为我的服务器用的宝塔面板环境,加上构建出来的包和文件并不是很大,所以使用的方式是先在github action的环境构建打包,然后将包发送到目标服务器。你也可以在github action里让目标服务器执行命令去做git,构建,部署,启动等等相关的

Springboot

name: Java CI with Maven

on:
  push:
    branches: [ "master" ]
jobs:
  build:
    runs-on: ubuntu-latest
    
    steps:
    - uses: actions/checkout@v3
    - name: Set up JDK 17
      uses: actions/setup-java@v3
      with:
        java-version: '17'
        distribution: 'temurin'
        cache: maven
    - name: Build with Maven
      run: mvn -B package --file pom.xml

    - name: copy jar
      uses: cross-the-world/ssh-scp-ssh-pipelines@latest
      with:
        host: ${{ secrets.HOST }}
        user: ${{ secrets.USERNAME }}
        pass: ${{ secrets.PASSWORD }}
        port: 22
        scp: |
          ./target/springboot.jar => /home/
        last_ssh: |
          JAR_NAME="springboot.jar"; PID=$(ps aux | grep "$JAR_NAME" | grep -v grep | awk '{print $2}'); if [ -n "$PID" ]; then kill -9 $PID && echo "进程 $PID 已被杀死"; else echo "未找到与 $JAR_NAME 相关的进程"; fi
          /usr/bin/java -jar -Xmx1024M -Xms256M  /home/springboot.jar &

Vue

name: Deploy to Server
on:
  push:
    branches: [ "master" ]
jobs:
  deploy:
    runs-on: ubuntu-latest 

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16

      - name: Install dependencies
        run: yarn 

      - name: Build project
        run: yarn generate 
      - name: zip dist
        run: zip -r dist.zip dist/

        # 部署到服务器
      - name: Deploy 🚀
        uses: cross-the-world/ssh-scp-ssh-pipelines@latest
        with:
            host: ${{ secrets.HOST }}
            user: ${{ secrets.USERNAME }}
            pass: ${{ secrets.PASSWORD }}
            port: 22
            scp: |
                './dist.zip' => /home
            last_ssh: |
                cd /home/
                rm -rf dist/ || true
                unzip dist.zip

常见的 GitHub Actions YAML 语法和关键概念

GitHub Actions 使用 YAML 文件来定义工作流程。以下是一些常见的 GitHub Actions YAML 语法和关键概念:

工作流程(Workflow)的定义:

name: My Workflow
on:
  push:
    branches:
      - main
jobs:
  my_job:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v2
      # 其他步骤...
  • name: 工作流程的名称。
  • on: 触发工作流程的事件,例如 push 到特定分支。
  • jobs: 包含一个或多个任务的部分。

任务(Job)的定义:

my_job:
  runs-on: ubuntu-latest
  steps:
    - name: Step 1
      run: echo "Hello, World!"
    # 其他步骤...
  • runs-on: 指定任务运行的操作系统和环境。
  • steps: 包含一个或多个步骤的列表。

步骤(Steps)的定义:

steps:
  - name: Step 1
    run: echo "Hello, World!"
  - name: Step 2
    uses: actions/setup-node@v3
    with:
      node-version: '14'
  # 其他步骤...
  • name: 步骤的名称。
  • run: 执行的命令或脚本。
  • uses: 使用的动作(可以是内置动作或自定义动作)。
  • with: 传递给动作的参数。

触发器(Trigger)的定义:

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - feature/*
  • on: 触发工作流程的事件。
  • push: 代码推送事件。
  • pull_request: 合并请求事件。

环境变量(Environment Variables)的定义:

jobs:
  my_job:
    runs-on: ubuntu-latest
    env:
      MY_VARIABLE: my_value
    steps:
      # 步骤...
  • env: 定义任务运行时的环境变量。

Secrets 和 Variables

使用 Secrets:

GitHub Actions 的 secrets 是用于存储敏感信息,例如 API 密钥、访问令牌等。这些 secrets 可以被工作流程中的步骤引用,但它们是加密的,并且只有在运行工作流程时才会暴露给步骤。

  1. 在 GitHub 存储库中创建 secret:

    • 转到 GitHub 存储库的页面。
    • 在存储库顶部导航栏中,点击 “Settings”。
    • 在左侧边栏中,选择 “Secrets”。
    • 点击 “New repository secret”,然后输入 secret 名称和值。
  2. 在工作流程中使用 secret:

    jobs:
      my_job:
        runs-on: ubuntu-latest
        steps:
          - name: Use secret
            run: echo ${{ secrets.MY_SECRET }}
    

    这里 MY_SECRET 是你创建的 secret 的名称,可以在步骤中使用 ${{ secrets.MY_SECRET }} 引用它。

使用 Variables:

GitHub Actions 的 variables 是由 GitHub 提供的一组默认环境变量,同时你也可以定义自己的环境变量。这些变量可以在工作流程的任何步骤中使用。

  1. 在工作流程中使用 GitHub 提供的 variables:

    jobs:
      my_job:
        runs-on: ubuntu-latest
        steps:
          - name: Use GitHub-provided variable
            run: echo ${{ github.event_name }}
    

    这里的 github.event_name 是 GitHub 提供的一个默认变量,表示触发工作流程的事件的名称。

  2. 在工作流程中定义自己的 variables:

    jobs:
      my_job:
        runs-on: ubuntu-latest
        env:
          MY_VARIABLE: my_value
        steps:
          - name: Use custom variable
            run: echo $MY_VARIABLE
    

    env 部分定义自己的环境变量,然后在步骤中使用 $MY_VARIABLE 引用它。

注意:GitHub Actions 中的环境变量(包括 secrets 和 variables)在步骤中的引用方式使用 ${{ ... }} 语法。此外,secrets 只能在工作流程的同一存储库中使用,而 variables 则可以在不同存储库的工作流程中共享。

更多博客文章尽在:https://cason.work/
自我整理的编程工具集合:https://tool.cason.work/
文章来源地址https://www.toymoban.com/news/detail-792208.html

到了这里,关于使用Github-Action持续部署Springboot或vue的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vitepress项目使用github的action自动部署到github-pages中,理论上可以通用所有

    .githubworkflowsdeploy.yml 完整的代码:使用的是 pnpm 进行依赖安装。 这段 YAML 文件定义了一个 GitHub Actions 工作流,用于在推送到 docs 分支时构建和部署 VitePress 项目。 on : 定义触发工作流的事件,这里是在推送到 docs 分支时触发。 jobs : 定义工作流中的任务。 build-and-deploy : 任务

    2024年01月17日
    浏览(51)
  • 利用 GitHub Action 对项目进行自动部署

    说一下项目背景,这是一个基于 Docusaurus 搭建的个人博客平台:Yopth.github.io ⚛️ Docusaurs 是一个优秀的搭建网站框架,基于 React 和 MDX,插件化、国际化、SEO 等做的都很不错,有需要搭建网站的同学可以考虑。 该网站利用 GitHub Pages 部署,这个方式也是 Docusaurus 所支持的,详

    2023年04月24日
    浏览(43)
  • GitHub Action 通过SSH 自动部署到云服务器上

    准备 正式开始之前,你需要掌握 GitHub Action 的基础语法: workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。 name: 工作流的名称。 on: 指定次工作流的触发器。push 表示只要有人将更改推送到仓库就会触发工作流运行。(点击这里了解如何指定特定分支,路径

    2024年01月19日
    浏览(48)
  • 尝鲜!最新 VitePress 1 版本 + Github action,自动部署个人静态站点 SSG

    今天查看 vue 文档时,刚好看到 vue 官网宣布 VitePress 1 更新了: 然后在路上走着走着,突然想着,也许我可以把我的笔记仓库转换成在线文档(毕竟纯粹的 md 笔记,喜欢的人不多)。 同时,由于我很久之前有过这 vuepress 的使用经验,而且前段时间又复习了一下 github action,

    2024年04月08日
    浏览(57)
  • GitHub Action 使用

    GitHub Actions 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行生成、测试和部署管道。 您可以创建工作流程来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。GitHub 提供 Linux、Windows 和 macOS 虚拟机来运行工作流程,或者您可以在自己的数据中

    2024年02月07日
    浏览(73)
  • 【github】使用github action 拉取国外docker镜像

    k8s部署经常用到国外镜像,如果本地无法拉取可以考虑使用github action环境 github action的ci服务器在国外,不受中国防火墙影响 github action 自带docker命令 运行时直接将你仓库代码拉取下来 你的国内docker仓库,拿到docker login的命令(这个根据不同的云获取,建议不要用dockerhub)

    2024年01月25日
    浏览(38)
  • 使用 GitHub Action 自动更新 Sealos 集群的应用镜像

    在 IT 领域,自动化无疑已成为提高工作效率和减少人为错误的关键。Sealos 作为一个强大的云操作系统,已经为许多企业和开发者提供了稳定可靠的服务。与此同时,随着技术不断发展,集成更多的功能和服务变得尤为重要。考虑到这一点,本文将介绍如何 利用 GitHub Action 来

    2024年02月08日
    浏览(45)
  • 【日常记录】自动化部署与持续交付:GitHub Actions CICD

    当我们做项目的时候,如果做完了,要发布,就需要打包,扔到服务器上,如果改了一点东西,还得打包,扔到服务器上,重复的执行 打包= 扔到服务器上 详细记录如何使用github actions自动化部署项目 自动化部署与持续交付:GitHub Actions CICD 自动化部署一般以下方式 Jenkins

    2024年02月02日
    浏览(65)
  • github-webhook+docker实现项目可持续自动化部署

    使用nginx+pm2+github-webhook+docker实现项目自动部署 注:docker也能实现pm2的守护进程功能(持续启动项目),所以使用了docker就不需要使用pm2了 但是需要注意的是使用node启动的webhook服务器不能使用docker,因为在webhook内部的sh脚本执行时需要到服务器的前后端项目文件中去执行,

    2024年04月12日
    浏览(66)
  • SpringBoot+Docker+Git+Jenkins实现简易的持续集成和持续部署

    努力了这么久,但凡有点儿天赋,也该有些成功的迹象了。 本篇文章引导你使用 Jenkins 部署 SpringBoot 项目,同时使用 Docker 和 Git 实现简单的持续集成和持续部署。(项目地址:sso-merryyou) 流程图如下: push 代码到 Github 触发 WebHook 。(因网络原因,本篇使用gitee) Jenkins 从仓库拉去

    2024年02月21日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包