代码之家  ›  专栏  ›  技术社区  ›  CurtLH

Travis CI只在所有构建完成后部署一次

  •  0
  • CurtLH  · 技术社区  · 5 年前

    我正在尝试编写一个基本的Travis CI脚本来测试构建Python包和运行pytest for pythonversion3.5到3.8。一旦这些都成功通过,我希望travisci构建文档和更新的GitHub页面。我已经能够成功地测试构建包并按预期运行测试,我甚至可以构建文档,但是文档构建了4次。我只希望文件是建立和更新一次后,一切都是成功的。我读过 Jobs ,但未能成功地将其与 deploy

    以下是我目前回购的链接: https://github.com/CurtLH/my_pkg

    下面是我现有的Travis CI脚本,它可以工作,但部署到GitHub页面4次。如何将脚本调整为只构建和部署一次文档?

    language: python
    python:
      - 3.8
      - 3.7
      - 3.6
      - 3.5
    install:
      - pip install -e .[dev]
    script:
      - pytest
      - sphinx-build -n -b html -d docs/build/doctrees docs/source docs/build/html
      - touch docs/build/html/.nojekyll
    
    deploy:
      provider: pages
      skip_cleanup: true
      github_token: $GITHUB_TOKEN
      keep-history: true
      on:
        branch: master
      local_dir: docs/build/html
    
    0 回复  |  直到 5 年前
        1
  •  7
  •   amalulla    5 年前

    您可以将构建分为两个阶段,一个是不同python版本的矩阵,另一个是部署步骤: https://docs.travis-ci.com/user/build-stages/matrix-expansion/

    .travis.yml 配置将变成:

    language: python
    python:
      - 3.8
      - 3.7
      - 3.6
      - 3.5
    install:
      - pip install -e .[dev]
    script:
      - pytest
      - sphinx-build -n -b html -d docs/build/doctrees docs/source docs/build/html
      - touch docs/build/html/.nojekyll
    
    jobs:
      include:
        - stage: deploy
            python: 3.8
            install: pip install -e .[dev]
            script:
              - pytest
              - sphinx-build -n -b html -d docs/build/doctrees docs/source docs/build/html
              - touch docs/build/html/.nojekyll
            deploy:
              provider: pages
              skip_cleanup: true
              github_token: $GITHUB_TOKEN
              keep-history: true
              on:
              branch: master
              local_dir: docs/build/html
    

    您还可以使用工作区(Beta版)存储所需的包版本,然后在将其发布到GitHub页面之前获取它: https://docs.travis-ci.com/user/using-workspaces/