[T.3] 团队项目:团队基础设施及 DevOps 准备
[T.3] 团队项目:团队基础设施及 DevOps 准备
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 2026年春季软件工程(罗杰、任健) |
| 这个作业的要求在哪里 | [T.3] 团队项目:团队基础设施及 DevOps 准备 |
| 我在这个课程的目标是 | 学习软件工程理论,在完成高质量的软件开发项目中深入学习软件工程经验 |
| 这个作业在哪个具体方面帮助我实现目标 | 确定团队的基础设施建设,技术路线和协作方案 |
服务器选择
由于本项目为一单机游戏项目,因此无需使用服务器。本团队的其他基础设施内容包括:
- 游戏开发方面,统一选用 Unity 6000.3.11f1(团结引擎是坏文明);
- logo 绘制选用 sai2、画世界pro,像素精灵图资源制作选用 Aseprite、Respriote;
- 游戏音乐音效制作选用 Studio One 7;
- itch.io网站介绍页面html制作工具选用 create-itch-tailwind。
团队沟通,协作与代码管理
团队沟通方式:
- 使用微信群保证即时通讯;
- 每周召开定期组会保证短期进度的稳定性。
团队写作方式:
- 采用飞书进行文档的编辑和任务的分发。
团队代码管理:
- 采用 Git 进行本地版本管理;
- 采用 GitHub 进行远端版本管理;
- 采用 GitHub LFS 进行美术资源管理;
- 采用 GitHub Actions 实现 CI/CD。
CI/CD
采用 GitHub Actions 实现,使用 GameCI 等 action 对特定提交进行 LFS 更新,自动化测试,以及工件构建等内容。
配置脚本如下:
name: Test and Build
on:
push:
paths:
- 'Assets/**'
- 'Packages/**'
- 'ProjectSettings/**'
pull_request:
branches:
- main
- master
- release
paths:
- 'Assets/**'
- 'Packages/**'
- 'ProjectSettings/**'
jobs:
test:
name: Test project
runs-on: ubuntu-latest
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false
# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
# Checkout (without LFS)
- name: Checkout repository
uses: actions/checkout@v4
# Git LFS
- name: Create LFS file list
run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id
- name: Restore LFS cache
uses: actions/cache@v3
id: lfs-cache
with:
path: .git/lfs
key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}
- name: Git LFS Pull
run: |
git lfs pull
git add .
git reset --hard
# Cache
- uses: actions/cache@v3
with:
path: Library
key: Library-${{ hashFiles('Assets/**', 'Packages/**', 'ProjectSettings/**') }}
restore-keys: |
Library-
# Test
- name: Run tests
uses: game-ci/unity-test-runner@v4
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}
allowDirtyBuild: true
build:
name: Build project
runs-on: ubuntu-latest
needs: test
if: github.event_name == 'pull_request'
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false
# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
# Checkout (without LFS)
- name: Checkout repository
uses: actions/checkout@v4
# Git LFS
- name: Create LFS file list
run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id
- name: Restore LFS cache
uses: actions/cache@v3
id: lfs-cache
with:
path: .git/lfs
key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}
- name: Git LFS Pull
run: |
git lfs pull
git add .
git reset --hard
# Cache
- uses: actions/cache@v3
with:
path: Library
key: Library-${{ hashFiles('Assets/**', 'Packages/**', 'ProjectSettings/**') }}
restore-keys: |
Library-
# Build
- name: Build project
uses: game-ci/unity-builder@v4
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
with:
targetPlatform: StandaloneWindows64
allowDirtyBuild: true
# Output
- uses: actions/upload-artifact@v4
with:
name: Build
path: build
经过各成员测试,该 Action 可正常运行:


浙公网安备 33010602011771号