integration.yaml 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. integration:
  8. # Name the Job
  9. name: Run mock integration tests
  10. # Set the type of machine to run on
  11. runs-on: ubuntu-latest
  12. strategy:
  13. matrix:
  14. python-version: ['3.8']
  15. cloud-provider: ['aws', 'azure', 'gcp', 'mock', 'openstack']
  16. steps:
  17. - name: Checkout code
  18. uses: actions/checkout@v2
  19. - uses: actions/setup-python@v2
  20. with:
  21. python-version: ${{ matrix.python-version }}
  22. - name: Cache pip dir
  23. uses: actions/cache@v2
  24. with:
  25. path: ~/.cache/pip
  26. key: pip-cache-${{ matrix.python-version }}-${{ hashFiles('**/setup.py', '**/requirements.txt') }}
  27. - name: Install required packages
  28. run: pip install tox
  29. - name: Run tox
  30. run: tox -e py${{ matrix.python-version }}-${{ matrix.cloud-provider }}
  31. env:
  32. PYTHONUNBUFFERED: "True"
  33. # aws
  34. AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
  35. AWS_SECRET_KEY: ${{ secrets.AWS_SECRET_KEY }}
  36. # azure
  37. AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
  38. AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
  39. AZURE_SECRET: ${{ secrets.AZURE_SECRET }}
  40. AZURE_TENANT: ${{ secrets.AZURE_TENANT }}
  41. AZURE_RESOURCE_GROUP: ${{ secrets.AZURE_RESOURCE_GROUP }}
  42. AZURE_STORAGE_ACCOUNT: ${{ secrets.AZURE_STORAGE_ACCOUNT }}
  43. CB_IMAGE_AZURE: ${{ secrets.CB_IMAGE_AZURE }}
  44. CB_VM_TYPE_AZURE: ${{ secrets.CB_VM_TYPE_AZURE }}
  45. # gcp
  46. GCP_SERVICE_CREDS_DICT: ${{ secrets.GCP_SERVICE_CREDS_DICT }}
  47. CB_IMAGE_GCP: ${{ secrets.CB_IMAGE_GCP }}
  48. # openstack
  49. OS_AUTH_URL: ${{ secrets.OS_AUTH_URL }}
  50. OS_PASSWORD: ${{ secrets.OS_PASSWORD }}
  51. OS_PROJECT_NAME: ${{ secrets.OS_PROJECT_NAME }}
  52. OS_PROJECT_DOMAIN_NAME: ${{ secrets.OS_PROJECT_DOMAIN_NAME }}
  53. OS_TENANT_NAME: ${{ secrets.OS_TENANT_NAME }}
  54. OS_USERNAME: ${{ secrets.OS_USERNAME }}
  55. OS_REGION_NAME: ${{ secrets.OS_REGION_NAME }}
  56. OS_USER_DOMAIN_NAME: ${{ secrets.OS_USER_DOMAIN_NAME }}
  57. CB_IMAGE_OS: ${{ secrets.CB_IMAGE_OS }}
  58. CB_PLACEMENT_OS: ${{ secrets.CB_PLACEMENT_OS }}
  59. - name: Coveralls
  60. uses: coverallsapp/github-action@master
  61. with:
  62. github-token: ${{ secrets.GITHUB_TOKEN }}
  63. flag-name: run-${{ matrix.python-version }}-${{ matrix.cloud-provider }}
  64. parallel: true
  65. finish:
  66. needs: integration
  67. runs-on: ubuntu-latest
  68. steps:
  69. - name: Coveralls Finished
  70. uses: coverallsapp/github-action@master
  71. with:
  72. github-token: ${{ secrets.github_token }}
  73. parallel-finished: true