[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 可正常运行:

hw3-1

posted @ 2026-04-14 13:34  DoneInFlash  阅读(26)  评论(0)    收藏  举报