Skip to content

Merge pull request #318 from CloudVE/update_tox_syntax #146

Merge pull request #318 from CloudVE/update_tox_syntax

Merge pull request #318 from CloudVE/update_tox_syntax #146

Workflow file for this run

name: Integration tests
# Run this workflow every time a new commit pushed to your repository
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch: {}
jobs:
# Set the job key. The key is displayed as the job name
# when a job name is not provided
lint:
name: Lint code
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ '3.10' ]
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Cache pip dir
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: pip-cache-${{ matrix.python-version }}-lint
- name: Install required packages
run: pip install tox
- name: Run tox
run: tox -e lint
integration:
# Name the Job
name: Per-cloud integration tests
needs: lint
# Set the type of machine to run on
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ['3.10']
cloud-provider: ['aws', 'azure', 'gcp', 'mock', 'openstack']
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Cache pip dir
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: pip-cache-${{ matrix.python-version }}-${{ hashFiles('**/setup.py', '**/requirements.txt') }}
- name: Install required packages
run: pip install tox
- name: Run tox
id: tox
run: tox -e py${{ matrix.python-version }}-${{ matrix.cloud-provider }}
env:
PYTHONUNBUFFERED: "True"
# aws
AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
AWS_SECRET_KEY: ${{ secrets.AWS_SECRET_KEY }}
CB_VM_TYPE_AWS: ${{ secrets.CB_VM_TYPE_AWS }}
# azure
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
AZURE_SECRET: ${{ secrets.AZURE_SECRET }}
AZURE_TENANT: ${{ secrets.AZURE_TENANT }}
AZURE_RESOURCE_GROUP: ${{ secrets.AZURE_RESOURCE_GROUP }}
AZURE_STORAGE_ACCOUNT: ${{ secrets.AZURE_STORAGE_ACCOUNT }}
CB_IMAGE_AZURE: ${{ secrets.CB_IMAGE_AZURE }}
CB_VM_TYPE_AZURE: ${{ secrets.CB_VM_TYPE_AZURE }}
# gcp
GCP_SERVICE_CREDS_DICT: ${{ secrets.GCP_SERVICE_CREDS_DICT }}
CB_IMAGE_GCP: ${{ secrets.CB_IMAGE_GCP }}
CB_VM_TYPE_GCP: ${{ secrets.CB_VM_TYPE_GCP }}
# openstack
OS_AUTH_URL: ${{ secrets.OS_AUTH_URL }}
OS_PASSWORD: ${{ secrets.OS_PASSWORD }}
OS_PROJECT_NAME: ${{ secrets.OS_PROJECT_NAME }}
OS_PROJECT_DOMAIN_NAME: ${{ secrets.OS_PROJECT_DOMAIN_NAME }}
OS_TENANT_NAME: ${{ secrets.OS_TENANT_NAME }}
OS_USERNAME: ${{ secrets.OS_USERNAME }}
OS_REGION_NAME: ${{ secrets.OS_REGION_NAME }}
OS_USER_DOMAIN_NAME: ${{ secrets.OS_USER_DOMAIN_NAME }}
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
CB_IMAGE_OS: ${{ secrets.CB_IMAGE_OS }}
CB_VM_TYPE_OS: ${{ secrets.CB_VM_TYPE_OS }}
CB_PLACEMENT_OS: ${{ secrets.CB_PLACEMENT_OS }}
- name: Create Build Status Badge
if: github.ref == 'refs/heads/master'
uses: schneegans/dynamic-badges-action@v1.1.0
with:
auth: ${{ secrets.BUILD_STATUS_GIST_SECRET }}
gistID: ${{ secrets.BUILD_STATUS_GIST_ID }}
filename: cloudbridge_py${{ matrix.python-version }}_${{ matrix.cloud-provider }}.json
label: ${{ matrix.cloud-provider }}
message: ${{ fromJSON('["passing", "failing"]')[steps.tox.outcome != 'success'] }}
color: ${{ fromJSON('["green", "red"]')[steps.tox.outcome != 'success'] }}
- name: Coveralls
if: ${{ steps.tox.outcome == 'success' }}
uses: AndreMiras/coveralls-python-action@develop
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: run-${{ matrix.python-version }}-${{ matrix.cloud-provider }}
parallel: true
finish:
needs: integration
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: AndreMiras/coveralls-python-action@develop
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true