目录
一.EC2安装配置GitHub Actions Runner
bash: shasum: command not found
Libicu's dependencies is missing for Dotnet Core 6.0
多台EC2 Runner需要在github上创建对应标签区分
二.配置项目.github/workflows/xxx.yml
INFO
- aws ec2→ aws linux2
- GitHub Actions 快速入门 官网文档
GitHub Actions 快速入门 - GitHub 文档
一.EC2安装配置GitHub Actions Runner
照着Download和Configure copy命令
可能报错
bash: shasum: command not found
-
eg
[root@ip-172-31-20-152 actions-runner]# echo "xxx actions-runner-linux-x64-2.309.0.tar.gz" | shasum -a 256 -c bash: shasum: command not found
-
解决
sudo yum install -y perl-Digest-SHA
再次尝试
Must not run with sudo
-
eg
[root@ip-172-31-20-152 actions-runner]# ./config.sh --url <https://github.com/xxx/xxx> --token xxx Must not run with sudo
-
原因
不应该使用
sudo
来运行config.sh
脚本。GitHub Actions Runner 需要以普通用户身份运行,而不是以 root 用户身份运行。 -
解决
设置
RUNNER_ALLOW_RUNASROOT
环境变量为1
: 以允许root
用户运行此脚本echo "export RUNNER_ALLOW_RUNASROOT=1" >> ~/.bashrc source ~/.bashrc
再次运行
Libicu's dependencies is missing for Dotnet Core 6.0
-
eg
[root@ip-172-31-20-152 actions-runner]# ./config.sh --url <https://github.com/xx/xx> --token xxx Libicu's dependencies is missing for Dotnet Core 6.0 Execute sudo ./bin/installdependencies.sh to install any missing Dotnet Core 6.0 dependencies.
-
原因
缺少
Libicu
依赖的错误,这是 Dotnet Core 6.0 所需的依赖 -
解决
安装
libicu
和其他必要的依赖项:sudo ./bin/installdependencies.sh sudo yum install -y libicu
显示如下即成功配置完成
- runner 已经成功连接到 GitHub 并正在监听作业
[root@ip-172-31-20-152 actions-runner]# ./run.sh
√ Connected to GitHub
Current runner version: '2.309.0'
2023-09-26 08:43:52Z: Listening for Jobs
后台运行 run.sh
保持runner在线
并将输出重定向到一个日志文件
mkdir logs
nohup ./run.sh > ./logs/runner.log 2>&1 &
多台EC2 Runner需要在github上创建对应标签区分
二.配置项目.github/workflows/xxx.yml
java 服务→以ruoyi为例
- 在仓库根目录创建.github/workflows/xxx.yml
- push 上去
-
# 定义工作流的名称 name: Deploy ruoyi-gateway # 定义触发此工作流的条件 on: # 当有代码推送时 push: # 只有推送到 'deploy' 分支时才触发 branches: - 'deploy' # 只有 'ruoyi-gateway' 目录下的文件发生变化时才触发 paths: - 'ruoyi-gateway/**' # 定义工作流中的任务 jobs: build-and-deploy: # 指定运行此任务的执行环境 runs-on: [self-hosted, linux, x64, xxx-prod-a] # 定义任务中的步骤 steps: # 检出代码到运行器 - name: Checkout code uses: actions/checkout@v2 # 设置 JDK 1.8 环境 - name: Set up JDK 1.8 uses: actions/setup-java@v1 with: java-version: 1.8 # 缓存 Maven 依赖,以加速后续构建 - name: Cache Maven packages uses: actions/cache@v2 with: # 指定缓存的路径 path: ~/.m2 # 缓存的键,基于运行器的 OS 和 pom.xml 的哈希值 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} # 如果上面的键不存在,则使用此键恢复缓存 restore-keys: ${{ runner.os }}-m2 # 使用 Maven 进行构建 - name: Build with Maven run: | # '-U' 选项确保快照依赖项是最新的 mvn clean package -U -DskipTests -Pprod # 构建 Docker 镜像 - name: Build Docker image run: | cd ruoyi-gateway docker build -t ruoyi-gateway:latest . # 在本地服务器上部署 Docker 容器 - name: Deploy to local server run: | # 停止并删除已存在的 'ruoyi-gateway' 容器 docker stop ruoyi-gateway || true docker rm ruoyi-gateway || true # 运行新的 'ruoyi-gateway' 容器 docker run -d --name ruoyi-gateway -p 8080:8080 ruoyi-gateway:latest