今天刚开始学习CI/CD。今天不知道 docker 之前是什么。我能够通过我的 Unity 项目在 CircleCI 上运行 CD。所有运行命令都发生在 docker 容器内。
version: 2.1
executors:
unity:
docker:
# https://hub.docker.com/r/gableroux/unity3d/tags
- image: gableroux/unity3d:2018.2.21f1
jobs:
build-test:
executor: unity
steps:
- checkout
# Install zip
- run: apt-get update
- run: apt-get install zip -y
# Decrypt the license file
- run: openssl aes-256-cbc -d -in .circleci/Unity_v2018.x.ulf.enc -k ${UNITY_LICENSE_DECRYPT_KEY} >> .circleci/Unity_v2018.x.ulf
# Activate unity
- run: /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -manualLicenseFile .circleci/Unity_v2018.x.ulf || exit 0
# Build Windows and OSX
- run: /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -noUpm -logFile -projectPath . -buildWindows64Player ./bin-win64/CISample.exe
- run: /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -noUpm -logFile -projectPath . -buildOSXUniversalPlayer ./bin-osx/CISample.app
# Zip builds
- run: zip -r CISampleWin64Binary.zip ./bin-win64
- run: zip -r CISampleOSXBinary.zip ./bin-osx
# Store builds
- store_artifacts:
path: ./CISampleWin64Binary.zip
- store_artifacts:
path: ./CISampleOSXBinary.zip
workflows:
version: 2
build:
jobs:
- build-test
无法弄清楚如何使用 GitHub Actions 执行此操作。我可以运行 docker 映像,但我不知道如何在其中运行命令。我的所有命令都在 Ubuntu VM 级别运行。我的测试是运行ls
命令查看它是否从 docker 容器运行,但事实并非如此。
这是我尝试过的一些事情。
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: |
docker run gableroux/unity3d:2018.2.21f1 bash
ls
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: docker://gableroux/unity3d:2018.2.21f1
- run: ls
弄清楚了。您可以指定container
为了一份工作。我的完整工作流程如下所示:
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
container: gableroux/unity3d:2018.2.21f1
steps:
- name: Checkout Project
uses: actions/checkout@v1
- name: Intall Zip
run: |
apt-get update
apt-get install zip -y
- name: Decrypt the license file
run: openssl aes-256-cbc -d -in .github/Unity_v2018.x.ulf.enc -k ${{ secrets.UNITY_LICENSE_DECRYPT_KEY }} >> .github/Unity_v2018.x.ulf
# Activate unity
- name: Activate Unity
run: /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -manualLicenseFile .github/Unity_v2018.x.ulf || exit 0
# Build Windows and OSX
- name: Build Windows Player
run: /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -noUpm -logFile -projectPath . -buildWindows64Player ./bin-win64/CISample.exe
- name: Build OSX Player
run: /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -noUpm -logFile -projectPath . -buildOSXUniversalPlayer ./bin-osx/CISample.app
- name: Zip Builds
run: |
zip -r CISampleWin64Binary.zip ./bin-win64
zip -r CISampleOSXBinary.zip ./bin-osx
- name: Archive Windows Build
uses: actions/upload-artifact@v1
with:
name: CISampleWin64Binary
path: ./CISampleWin64Binary.zip
- name: Archive Mac Build
uses: actions/upload-artifact@v1
with:
name: CISampleOSXBinary
path: ./CISampleOSXBinary.zip
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)