Upstream sync (#12) #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Integration Tests | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- master | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
tests: | |
if: | | |
!contains(github.event.pull_request.body, 'skip ci') | |
&& !contains(github.event.pull_request.body, 'skip integration') | |
strategy: | |
fail-fast: false | |
matrix: | |
openstack_version: [ "stable/2023.2" ] | |
php_version: [ 8.1 ] | |
include: | |
- name: "bobcat" | |
openstack_version: "stable/2023.2" | |
ubuntu_version: "22.04" | |
- name: "antelope" | |
openstack_version: "stable/2023.1" | |
ubuntu_version: "22.04" | |
- name: "zed" | |
openstack_version: "stable/zed" | |
ubuntu_version: "20.04" | |
- name: "yoga" | |
openstack_version: "unmaintained/yoga" | |
ubuntu_version: "20.04" | |
- name: "wallaby" | |
openstack_version: "unmaintained/wallaby" | |
ubuntu_version: "20.04" | |
block_storage_v2: true | |
runs-on: ubuntu-${{ matrix.ubuntu_version }} | |
name: Deploy OpenStack ${{ matrix.name }} and run integration tests with php ${{matrix.php_version}} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: get cache directory | |
id: composer-cache | |
run: | | |
echo "::set-output name=dir::$(composer config cache-files-dir)" | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.php_cs.cache | |
${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ matrix.php_version }}-${{ hashFiles('**.composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-composer-${{ matrix.php_version }}- | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php_version }} | |
extensions: curl | |
tools: composer:v2 | |
coverage: none | |
- run: composer install --prefer-dist --no-interaction --no-progress | |
- name: Restore devstack cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
/opt/stack/* | |
!/opt/stack/data | |
~/devstack/ | |
key: ${{ runner.os }}-openstack-${{ matrix.openstack_version }}-${{ github.workflow }} | |
- name: Deploy devstack | |
uses: EmilienM/devstack-action@v0.15 | |
with: | |
branch: ${{ matrix.openstack_version }} | |
conf_overrides: | | |
CINDER_ISCSI_HELPER=lioadm | |
SWIFT_ENABLE_TEMPURLS=True | |
SWIFT_TEMPURL_KEY=secretkey | |
TARGET_BRANCH=${{ matrix.openstack_version }} | |
[[post-config|\$SWIFT_CONFIG_PROXY_SERVER]] | |
[filter:versioned_writes] | |
allow_object_versioning = true | |
enabled_services: 's-account,s-container,s-object,s-proxy,s-bak' | |
- name: Set env variables | |
run: | | |
{ | |
echo OS_AUTH_URL="$(grep -oP -m 1 "(?<=auth_url: )(.*)\$" /etc/openstack/clouds.yaml)/v3" | |
echo OS_REGION=RegionOne | |
echo OS_REGION_NAME=RegionOne | |
echo OS_USER_ID=$(openstack --os-cloud=devstack-admin user show admin -f value -c id) | |
echo OS_USERNAME=admin | |
echo OS_PASSWORD=secret | |
echo OS_PROJECT_ID=$(openstack --os-cloud=devstack-admin project show admin -f value -c id) | |
echo OS_PROJECT_NAME=admin | |
echo OS_RESIZE_FLAVOR=c1 | |
echo OS_FLAVOR=1 | |
echo OS_DOMAIN_ID=default | |
} >> "$GITHUB_ENV" | |
- name: Check if Block Storage API v2 must be tested | |
if: matrix.block_storage_v2 == true | |
run: echo "OS_BLOCK_STORAGE_V2=1" >> "$GITHUB_ENV" | |
- name: Execute Integration tests via PhpUnit | |
run: vendor/bin/phpunit --configuration ./phpunit.sample.xml.dist | |
- name: Collect logs | |
if: ${{ failure() }} | |
run: | | |
set -x | |
journalctl >failure-logs | |
- name: Save logs | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: failure-logs | |
path: failure-logs |