1. 首页 > 软件下载 > 正文

CI/CD下载-GitHub Actions下载地址-GitHub Actions下载方法

1. GitHub Actions简介与版本说明

GitHub Actions是GitHub提供的持续集成和持续交付(CI/CD)平台,通过Self-hosted Runner可以在自己的服务器上运行构建任务。更多学习教程www.fgedu.net.cn

GitHub Runner最新版本:

GitHub Runner 2.323.0(2026年3月发布)

GitHub Runner 2.322.1(2026年2月发布)

GitHub Runner 2.321.1(2026年1月发布)

GitHub Runner 2.320.0(2025年12月发布)

GitHub Runner类型:

GitHub-hosted runners:GitHub托管的Runner,按分钟计费

Self-hosted runners:自托管Runner,在自己的服务器上运行

Larger runners:大型Runner,提供更多CPU和内存资源

2. GitHub Runner下载地址

GitHub Runner支持多种操作系统和架构,可以从官方发布页面获取对应版本。学习交流加群风哥微信: itpux-com

官方下载地址:

GitHub Runner发布页面:https://github.com/actions/runner/releases

GitHub Runner源码仓库:https://github.com/actions/runner

GitHub Actions文档:https://docs.github.com/en/actions

# 查看最新版本信息
$ curl -s “https://api.github.com/repos/actions/runner/releases/latest” | grep -E ‘”tag_name”|”name”|”browser_download_url”‘

输出示例如下:
“tag_name”: “v2.323.0”,
“name”: “v2.323.0”,
“browser_download_url”: “https://github.com/actions/runner/releases/download/v2.323.0/actions-runner-linux-x64-2.323.0.tar.gz”,
“browser_download_url”: “https://github.com/actions/runner/releases/download/v2.323.0/actions-runner-linux-arm64-2.323.0.tar.gz”,
“browser_download_url”: “https://github.com/actions/runner/releases/download/v2.323.0/actions-runner-osx-x64-2.323.0.tar.gz”,
“browser_download_url”: “https://github.com/actions/runner/releases/download/v2.323.0/actions-runner-win-x64-2.323.0.zip”

各平台下载链接:

Linux x64:https://github.com/actions/runner/releases/download/v2.323.0/actions-runner-linux-x64-2.323.0.tar.gz

Linux ARM64:https://github.com/actions/runner/releases/download/v2.323.0/actions-runner-linux-arm64-2.323.0.tar.gz

macOS x64:https://github.com/actions/runner/releases/download/v2.323.0/actions-runner-osx-x64-2.323.0.tar.gz

Windows x64:https://github.com/actions/runner/releases/download/v2.323.0/actions-runner-win-x64-2.323.0.zip

3. Linux系统安装GitHub Runner

在Linux系统上安装GitHub Runner需要下载压缩包并解压配置。风哥提示:生产环境建议创建专用用户运行Runner服务。

步骤1:创建Runner用户

# 创建github-runner用户
# useradd -m -s /bin/bash github-runner

# 设置密码
# passwd github-runner

输出示例如下:
Changing password for user github-runner.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

# 添加到docker组(如需使用Docker)
# usermod -aG docker github-runner

步骤2:下载并安装Runner

# 切换到github-runner用户
# su – github-runner

# 创建Runner目录
$ mkdir -p ~/actions-runner && cd ~/actions-runner

# 下载最新版本Runner
$ curl -o actions-runner-linux-x64-2.323.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.323.0/actions-runner-linux-x64-2.323.0.tar.gz

输出示例如下:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0
100 78.58M 100 78.58M 0 0 15.2M 0 0:00:05 0:00:05 –:–:– 18.5M

# 验证下载文件
$ echo “abc123def456 actions-runner-linux-x64-2.323.0.tar.gz” | shasum -a 256 -c

输出示例如下:
actions-runner-linux-x64-2.323.0.tar.gz: OK

# 解压文件
$ tar xzf ./actions-runner-linux-x64-2.323.0.tar.gz

输出示例如下:
./
./externals/
./externals/gh_token/
./externals/gh_token/LICENSE
./externals/gh_token/gh_token

# 查看解压内容
$ ls -la

输出示例如下:
total 80520
drwxr-xr-x 4 github-runner github-runner 4096 Apr 4 10:00 .
drwxrwxr-x 3 github-runner github-runner 4096 Apr 4 10:00 ..
-rw-r–r– 1 github-runner github-runner 80439296 Apr 4 10:00 actions-runner-linux-x64-2.323.0.tar.gz
drwxr-xr-x 2 github-runner github-runner 4096 Apr 4 10:00 bin
drwxr-xr-x 19 github-runner github-runner 4096 Apr 4 10:00 externals
-rwxr-xr-x 1 github-runner github-runner 3277 Apr 4 10:00 config.sh
-rwxr-xr-x 1 github-runner github-runner 3277 Apr 4 10:00 run.sh

步骤3:安装依赖

# 安装Runner依赖(需要root权限)
# ./bin/installdependencies.sh

输出示例如下:
Libicu dependencies:
Last metadata expiration check: 0:00:15 ago on Sat Apr 4 10:00:00 2026.
Package libicu-60.3-2.el8_1.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

Additional dependencies:
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
lttng-ust x86_64 2.8.1-11.el8 ol8_baseos 258 k
krb5-libs x86_64 1.18.2-28.el8 ol8_baseos 823 k
zlib x86_64 1.2.11-25.el8 ol8_baseos 102 k

Transaction Summary
================================================================================
Install 3 Packages

Total download size: 1.2 M
Installed size: 3.5 M
Downloading Packages:
(1/3): lttng-ust-2.8.1-11.el8.x86_64.rpm 1.2 MB/s | 258 kB 00:00
(2/3): krb5-libs-1.18.2-28.el8.x86_64.rpm 2.5 MB/s | 823 kB 00:00
(3/3): zlib-1.2.11-25.el8.x86_64.rpm 500 kB/s | 102 kB 00:00
——————————————————————————–
Total 1.5 MB/s | 1.2 MB 00:00
Complete!

4. Docker方式部署GitHub Runner

使用Docker部署GitHub Runner是生产环境常用的方式,便于管理和升级。学习交流加群风哥QQ113257174

步骤1:拉取GitHub Runner镜像

# 拉取官方Runner镜像
# docker pull ghcr.io/actions/actions-runner:latest

输出示例如下:
latest: Pulling from actions/actions-runner
Digest: sha256:abc123def456…
Status: Downloaded newer image for ghcr.io/actions/actions-runner:latest
ghcr.io/actions/actions-runner:latest

# 拉取指定版本镜像
# docker pull ghcr.io/actions/actions-runner:2.323.0

输出示例如下:
2.323.0: Pulling from actions/actions-runner
7a9868e23051: Pull complete

Digest: sha256:abc123def456…
Status: Downloaded newer image for ghcr.io/actions/actions-runner:2.323.0
ghcr.io/actions/actions-runner:2.323.0

# 查看本地镜像
# docker images | grep actions-runner

输出示例如下:
ghcr.io/actions/actions-runner latest abc123def456 2 days ago 700MB
ghcr.io/actions/actions-runner 2.323.0 abc123def456 2 days ago 700MB

步骤2:创建GitHub Runner容器

# 创建配置目录
# mkdir -p /fgedudb/github-runner

# 启动Runner容器(需要先获取Token)
# docker run -d –name github-runner \
-e GITHUB_URL=”https://github.com” \
-e GITHUB_TOKEN=”YOUR_RUNNER_TOKEN” \
-e RUNNER_NAME=”fgedu-runner-01″ \
-e RUNNER_WORKDIR=”/tmp/github-runner” \
-e RUNNER_GROUP=”default” \
-e RUNNER_LABELS=”docker,build,deploy” \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /fgedudb/github-runner:/tmp/github-runner \
ghcr.io/actions/actions-runner:latest

输出示例如下:
Unable to find image ‘ghcr.io/actions/actions-runner:latest’ locally
latest: Pulling from actions/actions-runner

Digest: sha256:abc123def456…
Status: Downloaded newer image for ghcr.io/actions/actions-runner:latest
f8e7d8a9c0b1a2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7

# 查看容器状态
# docker ps | grep github-runner

输出示例如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f8e7d8a9c0b1 ghcr.io/actions/actions-runner:latest “/bin/bash -c ‘./run…” 10 seconds ago Up 9 seconds github-runner

步骤3:使用Docker Compose部署

# 创建docker-compose.yml文件
# cat > /fgedudb/github-runner/docker-compose.yml << 'EOF' version: '3.8' services: github-runner: image: ghcr.io/actions/actions-runner:2.323.0 container_name: github-runner restart: always environment: - GITHUB_URL=https://github.com - GITHUB_TOKEN=${GITHUB_TOKEN} - RUNNER_NAME=fgedu-runner-01 - RUNNER_WORKDIR=/tmp/github-runner - RUNNER_GROUP=default - RUNNER_LABELS=docker,build,deploy - TZ=Asia/Shanghai volumes: - /var/run/docker.sock:/var/run/docker.sock - ./work:/tmp/github-runner logging: driver: "json-file" options: max-size: "100m" max-file: "3" EOF # 创建环境变量文件 # cat > /fgedudb/github-runner/.env << 'EOF' GITHUB_TOKEN=YOUR_RUNNER_TOKEN EOF # 启动服务 # cd /fgedudb/github-runner # docker-compose up -d 输出示例如下: Creating network "github-runner_default" with the default driver Creating github-runner ... done # 查看服务状态 # docker-compose ps 输出示例如下: Name Command State Ports ------------------------------------------------------------ github-runner "/bin/bash -c './run.sh'" Up

5. GitHub Runner注册配置

GitHub Runner需要注册到GitHub仓库或组织才能接收构建任务。更多学习教程公众号风哥教程itpux_com

步骤1:获取注册Token

# 访问GitHub仓库设置页面获取Token
# Settings -> Actions -> Runners -> New self-hosted runner

# 仓库级别Token示例
# https://github.com/OWNER/REPO/settings/actions/runners/new

# 组织级别Token
# https://github.com/organizations/ORG/settings/actions/runners/new

# Token格式示例
# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

# 或使用API获取Token
$ curl -X POST \
-H “Authorization: token YOUR_GITHUB_TOKEN” \
-H “Accept: application/vnd.github+json” \
https://api.github.com/repos/OWNER/REPO/actions/runners/registration-token

输出示例如下:
{
“token”: “AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA”,
“expires_at”: “2026-03-16T10:00:00Z”
}

步骤2:配置Runner

# 配置Runner(交互式)
$ ./config.sh

输出示例如下:
——————————————————————————–
| ____ _ _ _ _ _ _ _ _ |
| / ___(_) |_| | | |_ _| |__ / \ ___| |_(_) ___ _ __ ___ |
| | | _| | __| | | | | | | ‘_ \ / _ \ / __| __| |/ _ \| ‘_ \/ __| |
| | |_| | | |_| |_| | |_| | |_) | / ___ \ (__| |_| | (_) | | | \__ \ |
| \____|_|\_| \__,_|\__,_|_.__/ /_/ \_\___|\__|_|\___/|_| |_|___/ |
| |
| Self-hosted runner registration |
| |
——————————————————————————–

# What is the URL of the GitHub repository?
# 输入仓库URL: https://github.com/fgedu/fgedu-app

# What is the runner registration token?
# 输入Token: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

# What runner group should this runner belong to?
# 输入Runner组: (留空使用默认组)

# What name should this runner have?
# 输入Runner名称: fgedu-runner-01

# What labels should this runner have?
# 输入标签: docker,build,deploy

# What work folder should this runner use?
# 输入工作目录: _work

√ Runner successfully added
√ Runner connection is good
√ Runner settings are saved

步骤3:非交互式配置

# 非交互式配置
$ ./config.sh –url https://github.com/fgedu/fgedu-app \
–token AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA \
–name fgedu-runner-01 \
–labels docker,build,deploy \
–work _work \
–unattended

输出示例如下:
——————————————————————————–
| ____ _ _ _ _ _ _ _ _ |
| / ___(_) |_| | | |_ _| |__ / \ ___| |_(_) ___ _ __ ___ |
| | | _| | __| | | | | | | ‘_ \ / _ \ / __| __| |/ _ \| ‘_ \/ __| |
| | |_| | | |_| |_| | |_| | |_) | / ___ \ (__| |_| | (_) | | | \__ \ |
| \____|_|\_| \__,_|\__,_|_.__/ /_/ \_\___|\__|_|\___/|_| |_|___/ |
| |
| Self-hosted runner registration |
| |
——————————————————————————–
√ Connected to GitHub

Runner successfully added to repository fgedu/fgedu-app
Runner settings:
Name: ‘fgedu-runner-01’
Runner Group: ‘Default’
Labels: ‘docker,build,deploy’
Work Folder: ‘_work’

步骤4:安装为系统服务

# 安装为Systemd服务
# ./svc.sh install

输出示例如下:
Creating launch runner in /etc/systemd/system/github-runner.service
Run as user: github-runner
Run as uid: 1001
gid: 1001
Created symlink /etc/systemd/system/multi-user.target.wants/github-runner.service → /etc/systemd/system/github-runner.service.

# 启动服务
# ./svc.sh start

输出示例如下:
Starting service…
Service started successfully.

# 查看服务状态
# ./svc.sh status

输出示例如下:
Service is running
Status: Active
Runner Name: fgedu-runner-01
Runner ID: 12345
Pool ID: 1

# 设置开机自启
# systemctl enable github-runner

输出示例如下:
Created symlink /etc/systemd/system/multi-user.target.wants/github-runner.service → /etc/systemd/system/github-runner.service.

6. GitHub Actions Workflow实战

GitHub Actions使用YAML文件定义Workflow,支持多阶段构建和部署。风哥提示:Workflow文件应放在.github/workflows目录下。

步骤1:创建Workflow文件

# 创建Workflow目录
$ mkdir -p .github/workflows

# 创建CI Workflow
$ cat > .github/workflows/ci.yml << 'EOF' name: CI Pipeline on: push: branches: [ main, develop ] pull_request: branches: [ main ] env: DOCKER_REGISTRY: 192.168.1.51:5000 IMAGE_NAME: ${{ github.repository }} jobs: build: runs-on: self-hosted steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' cache: maven - name: Build with Maven run: mvn clean package -DskipTests - name: Run tests run: mvn test - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: app-jar path: target/*.jar docker: needs: build runs-on: self-hosted steps: - name: Checkout code uses: actions/checkout@v4 - name: Download artifacts uses: actions/download-artifact@v4 with: name: app-jar path: target - name: Login to Registry run: echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login $DOCKER_REGISTRY -u "${{ secrets.REGISTRY_USER }}" --password-stdin - name: Build Docker image run: | docker build -t $DOCKER_REGISTRY/$IMAGE_NAME:${{ github.sha }} . docker tag $DOCKER_REGISTRY/$IMAGE_NAME:${{ github.sha }} $DOCKER_REGISTRY/$IMAGE_NAME:latest - name: Push Docker image run: | docker push $DOCKER_REGISTRY/$IMAGE_NAME:${{ github.sha }} docker push $DOCKER_REGISTRY/$IMAGE_NAME:latest deploy: needs: docker runs-on: self-hosted if: github.ref == 'refs/heads/main' steps: - name: Deploy to Kubernetes run: | kubectl set image deployment/fgedu-app fgedu-app=$DOCKER_REGISTRY/$IMAGE_NAME:${{ github.sha }} -n default EOF # 提交Workflow文件 $ git add .github/workflows/ci.yml $ git commit -m "Add GitHub Actions CI Pipeline" 输出示例如下: [main abc123d] Add GitHub Actions CI Pipeline 1 file changed, 60 insertions(+) create mode 100644 .github/workflows/ci.yml $ git push origin main 输出示例如下: Enumerating objects: 7, done. Counting objects: 100% (7/7), done. Delta compression using up to 8 threads Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 1.20 KiB | 1.20 MiB/s, done. Total 4 (delta 2), reused 0 (delta 0), pack-reused 0 To https://github.com/fgedu/fgedu-app.git def456a..abc123d main -> main

步骤2:查看Workflow运行状态

# 使用gh CLI查看Workflow状态
$ gh run list

输出示例如下:
STATUS NAME BRANCH EVENT ID ELAPSED AGE
✓ CI Pipeline main push 1234567890 5m30s 1m

# 查看Workflow详情
$ gh run view 1234567890

输出示例如下:
CI Pipeline · 1234567890
Triggered via push about 2 minutes ago

JOBS
✓ build in 2m15s
✓ docker in 1m30s
✓ deploy in 1m00s

ANNOTATIONS
No annotations

# 查看Job日志
$ gh run view 1234567890 –log

输出示例如下:
2026-04-04T10:00:00.0000000Z ##[group]Run actions/checkout@v4
2026-04-04T10:00:00.0000000Z with:
2026-04-04T10:00:00.0000000Z repository: fgedu/fgedu-app
2026-04-04T10:00:00.0000000Z ref: refs/heads/main
2026-04-04T10:00:00.0000000Z ##[endgroup]
2026-04-04T10:00:01.0000000Z Syncing repository: fgedu/fgedu-app
2026-04-04T10:00:02.0000000Z Working directory is ‘/tmp/github-runner/_work/fgedu-app/fgedu-app’

7. GitHub Runner生产环境配置

生产环境需要对GitHub Runner进行优化配置,确保稳定性和性能。from:www.itpux.com

步骤1:配置Runner资源限制

# 编辑Runner服务配置
# vi /etc/systemd/system/github-runner.service

[Unit]
Description=GitHub Actions Runner
After=network.target

[Service]
User=github-runner
Group=github-runner
WorkingDirectory=/home/github-runner/actions-runner
ExecStart=/home/github-runner/actions-runner/run.sh
Restart=always
RestartSec=5
LimitNOFILE=65536
MemoryMax=8G
CPUQuota=200%

[Install]
WantedBy=multi-user.target

# 重新加载配置
# systemctl daemon-reload
# systemctl restart github-runner

步骤2:配置Runner监控

# 创建监控脚本
# cat > /usr/local/bin/monitor-runner.sh << 'EOF' #!/bin/bash RUNNER_STATUS=$(systemctl is-active github-runner) RUNNER_COUNT=$(ps aux | grep -c "[R]unner.Listener") if [ "$RUNNER_STATUS" != "active" ] || [ "$RUNNER_COUNT" -lt 1 ]; then echo "Runner is not running, attempting restart..." systemctl restart github-runner echo "Runner restarted at $(date)" >> /var/log/runner-monitor.log
fi
EOF

# 添加执行权限
# chmod +x /usr/local/bin/monitor-runner.sh

# 添加定时任务
# crontab -e

输出示例如下:
*/5 * * * * /usr/local/bin/monitor-runner.sh

# 查看Runner状态
# systemctl status github-runner

输出示例如下:
● github-runner.service – GitHub Actions Runner
Loaded: loaded (/etc/systemd/system/github-runner.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2026-04-04 10:00:00 CST; 1h ago
Main PID: 12345 (run.sh)
Tasks: 15 (limit: 49143)
Memory: 512.0M (limit: 8.0G)
CGroup: /system.slice/github-runner.service
├─12345 /bin/bash ./run.sh
└─12346 ./bin/Runner.Listener run –startuptype service

步骤3:配置日志轮转

# 创建日志轮转配置
# cat > /etc/logrotate.d/github-runner << 'EOF' /var/log/github-runner/*.log { daily rotate 30 compress delaycompress missingok notifempty create 0644 github-runner github-runner sharedscripts postrotate systemctl reload github-runner > /dev/null 2>&1 || true
endscript
}
EOF

# 创建日志目录
# mkdir -p /var/log/github-runner
# chown github-runner:github-runner /var/log/github-runner

# 配置Runner输出日志
# vi /etc/systemd/system/github-runner.service

[Service]
StandardOutput=append:/var/log/github-runner/runner.log
StandardError=append:/var/log/github-runner/runner.log

# 重启服务
# systemctl daemon-reload
# systemctl restart github-runner

生产环境建议:GitHub Runner建议部署在独立服务器上,配置足够的CPU和内存资源。使用Docker executor时,配置合理的资源限制和镜像拉取策略。启用Runner监控和告警,及时发现和处理故障。定期更新Runner版本,获取安全修复和新功能。配置日志轮转,避免日志文件过大占用磁盘空间。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息