GitHub动作:如何在Docker容器中运行命令 [英] GitHub Action: How do I run commands inside a docker container

查看:259
本文介绍了GitHub动作:如何在Docker容器中运行命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

今天才开始学习CI/CD.不知道今天以前码头工人是什么.我可以通过Unity项目使CD在CircleCI上工作.所有的运行命令都在docker容器内发生.

Just started learning about CI/CD today. Didn't know what docker was previous to today. I was able to get CD working on CircleCI with my Unity project. All of the run commands were happening inside the docker container.

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容器中运行.

Can't figure out how to do this with GitHub Actions. I can run a docker image but I can't figure out how to run commands within it. All of my commands are run at Ubuntu VM level. My test is to run a ls command to see if it's running from the docker container which it is not.

以下是我尝试过的一些事情.

Here a few of the things I have tried.

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.我的整个工作流程如下:

Figured it out. You can specify container for a job. My full workflow looks like this:

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

这篇关于GitHub动作:如何在Docker容器中运行命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆