integration.yaml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. name: Integration
  2. # Run this workflow every time a new commit pushed to your repository
  3. on: [push, pull_request]
  4. jobs:
  5. # Set the job key. The key is displayed as the job name
  6. # when a job name is not provided
  7. lint:
  8. name: Lint code
  9. runs-on: ubuntu-latest
  10. strategy:
  11. matrix:
  12. python-version: [ '3.8' ]
  13. steps:
  14. - name: Checkout code
  15. uses: actions/checkout@v2
  16. - uses: actions/setup-python@v2
  17. with:
  18. python-version: ${{ matrix.python-version }}
  19. - name: Cache pip dir
  20. uses: actions/cache@v2
  21. with:
  22. path: ~/.cache/pip
  23. key: pip-cache-${{ matrix.python-version }}-${{ hashFiles('**/setup.py', '**/requirements.txt') }}
  24. - name: Install required packages
  25. run: pip install tox
  26. - name: Run tox
  27. run: tox -e lint
  28. integration:
  29. # Name the Job
  30. name: Run mock integration tests
  31. needs: lint
  32. # Set the type of machine to run on
  33. runs-on: ubuntu-latest
  34. strategy:
  35. matrix:
  36. python-version: ['3.8']
  37. cloud-provider: ['aws', 'azure', 'gcp', 'mock', 'openstack']
  38. steps:
  39. - name: Checkout code
  40. uses: actions/checkout@v2
  41. - uses: actions/setup-python@v2
  42. with:
  43. python-version: ${{ matrix.python-version }}
  44. - name: Cache pip dir
  45. uses: actions/cache@v2
  46. with:
  47. path: ~/.cache/pip
  48. key: pip-cache-${{ matrix.python-version }}-${{ hashFiles('**/setup.py', '**/requirements.txt') }}
  49. - name: Install required packages
  50. run: pip install tox
  51. - name: Run tox
  52. run: tox -e py${{ matrix.python-version }}-${{ matrix.cloud-provider }}
  53. env:
  54. PYTHONUNBUFFERED: "True"
  55. # aws
  56. AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
  57. AWS_SECRET_KEY: ${{ secrets.AWS_SECRET_KEY }}
  58. # azure
  59. AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
  60. AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
  61. AZURE_SECRET: ${{ secrets.AZURE_SECRET }}
  62. AZURE_TENANT: ${{ secrets.AZURE_TENANT }}
  63. AZURE_RESOURCE_GROUP: ${{ secrets.AZURE_RESOURCE_GROUP }}
  64. AZURE_STORAGE_ACCOUNT: ${{ secrets.AZURE_STORAGE_ACCOUNT }}
  65. CB_IMAGE_AZURE: ${{ secrets.CB_IMAGE_AZURE }}
  66. CB_VM_TYPE_AZURE: ${{ secrets.CB_VM_TYPE_AZURE }}
  67. # gcp
  68. GCP_SERVICE_CREDS_DICT: ${{ secrets.GCP_SERVICE_CREDS_DICT }}
  69. CB_IMAGE_GCP: ${{ secrets.CB_IMAGE_GCP }}
  70. # openstack
  71. OS_AUTH_URL: ${{ secrets.OS_AUTH_URL }}
  72. OS_PASSWORD: ${{ secrets.OS_PASSWORD }}
  73. OS_PROJECT_NAME: ${{ secrets.OS_PROJECT_NAME }}
  74. OS_PROJECT_DOMAIN_NAME: ${{ secrets.OS_PROJECT_DOMAIN_NAME }}
  75. OS_TENANT_NAME: ${{ secrets.OS_TENANT_NAME }}
  76. OS_USERNAME: ${{ secrets.OS_USERNAME }}
  77. OS_REGION_NAME: ${{ secrets.OS_REGION_NAME }}
  78. OS_USER_DOMAIN_NAME: ${{ secrets.OS_USER_DOMAIN_NAME }}
  79. CB_IMAGE_OS: ${{ secrets.CB_IMAGE_OS }}
  80. CB_PLACEMENT_OS: ${{ secrets.CB_PLACEMENT_OS }}
  81. - name: Coveralls
  82. uses: coverallsapp/github-action@master
  83. with:
  84. github-token: ${{ secrets.GITHUB_TOKEN }}
  85. flag-name: run-${{ matrix.python-version }}-${{ matrix.cloud-provider }}
  86. parallel: true
  87. finish:
  88. needs: integration
  89. runs-on: ubuntu-latest
  90. steps:
  91. - name: Coveralls Finished
  92. uses: coverallsapp/github-action@master
  93. with:
  94. github-token: ${{ secrets.github_token }}
  95. parallel-finished: true