forked from openwallet-foundation/acapy-plugins
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: jamshale <[email protected]>
- Loading branch information
Showing
4 changed files
with
112 additions
and
65 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
name: Pull Request - Integration Tests | ||
name: Integration Tests | ||
on: | ||
pull_request: | ||
types: [opened, edited, synchronize, reopened, ready_for_review] | ||
|
@@ -11,27 +11,30 @@ jobs: | |
runs-on: ubuntu-latest | ||
steps: | ||
#---------------------------------------------- | ||
# check-out repo and install poetry | ||
# Check out repo | ||
#---------------------------------------------- | ||
- name: Check out repository | ||
uses: actions/checkout@v3 | ||
#---------------------------------------------- | ||
# Get docker compose | ||
#---------------------------------------------- | ||
- name: Initialize Docker Compose | ||
uses: isbang/[email protected] | ||
#---------------------------------------------- | ||
# Get changed files | ||
#---------------------------------------------- | ||
- name: Get changed files | ||
id: changed-files | ||
uses: tj-actions/changed-files@v40 | ||
- name: Initialize Docker Compose | ||
uses: isbang/[email protected] | ||
#---------------------------------------------- | ||
# Run integration Tests | ||
# Get changed plugins | ||
#---------------------------------------------- | ||
- name: Run integration tests | ||
id: integration-tests | ||
- name: Get changed plugins | ||
id: changed-plugins | ||
run: | | ||
# This will navigate to each subdirectory and perform integration tests | ||
# If we have a directory that isn't a plugin then it will need to skip it. Currently there is none. | ||
# Collects all the plugin names that have changes. | ||
# If there is directory that isn't a plugin then it will need to skip it. Currently there is none. | ||
declare -a changed_dirs=() | ||
for dir in ./*/; do | ||
current_folder=$(basename "$dir") | ||
|
@@ -44,8 +47,15 @@ jobs: | |
done | ||
done | ||
echo "changed-plugins=${changed_dirs[*]}" >> $GITHUB_OUTPUT | ||
for dir in ${changed_dirs[*]}; do | ||
#---------------------------------------------- | ||
# Get changed plugins | ||
#---------------------------------------------- | ||
- name: Run Integration Tests | ||
id: integration-tests | ||
run: | | ||
for dir in ${{ steps.changed-plugins.outputs.changed-plugins }}; do | ||
echo "Running integration tests for $dir" | ||
cd $dir/integration | ||
docker compose build | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
name: Linting and Unit Tests | ||
on: | ||
pull_request: | ||
types: [opened, edited, synchronize, reopened, ready_for_review] | ||
branches: | ||
- "**" | ||
|
||
jobs: | ||
linting-and-unit-tests: | ||
name: "Code quality and unit tests" | ||
runs-on: ubuntu-latest | ||
outputs: | ||
changed-plugins: ${{ steps.changed-plugins.outputs.cache-hit }} | ||
steps: | ||
#---------------------------------------------- | ||
# Check out repo | ||
#---------------------------------------------- | ||
- name: Check out repository | ||
uses: actions/checkout@v3 | ||
#---------------------------------------------- | ||
# Install python and poetry with cache | ||
#---------------------------------------------- | ||
- name: Install poetry | ||
run: pipx install poetry | ||
id: setup-poetry | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.9" | ||
cache: "poetry" | ||
#---------------------------------------------- | ||
# Get changed files | ||
#---------------------------------------------- | ||
- name: Get changed files | ||
id: changed-files | ||
uses: tj-actions/changed-files@v40 | ||
#---------------------------------------------- | ||
# Get changed plugins | ||
#---------------------------------------------- | ||
- name: Get changed plugins | ||
id: changed-plugins | ||
run: | | ||
# Collects all the plugin names that have changes. | ||
# If there is directory that isn't a plugin then it will need to skip it. Currently there is none. | ||
declare -a changed_dirs=() | ||
for dir in ./*/; do | ||
current_folder=$(basename "$dir") | ||
for changed_file in ${{ steps.changed-files.outputs.all_changed_files }}; do | ||
if [[ $changed_file == *"$current_folder"* ]]; then | ||
if ! [[ ${changed_dirs[*]} =~ $current_folder ]]; then | ||
changed_dirs+=("$current_folder") | ||
fi | ||
fi | ||
done | ||
done | ||
echo "changed-plugins=${changed_dirs[*]}" >> $GITHUB_OUTPUT | ||
#---------------------------------------------- | ||
# Install dependencies | ||
#---------------------------------------------- | ||
- name: Install dependencies | ||
id: install-dependencies | ||
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' | ||
run: | | ||
for dir in ${{ steps.changed-plugins.outputs.changed-plugins }}; do | ||
cd $dir | ||
poetry install --no-interaction --no-root | ||
cd .. | ||
done | ||
#---------------------------------------------- | ||
# Lint plugins | ||
#---------------------------------------------- | ||
- name: Lint plugins | ||
id: lint-plugins | ||
run: | | ||
for dir in ${{ steps.changed-plugins.outputs.changed-plugins }}; do | ||
cd $dir | ||
poetry run ruff check . | ||
cd .. | ||
done | ||
#---------------------------------------------- | ||
# Unit tests | ||
#---------------------------------------------- | ||
- name: Unit test plugins | ||
id: unit-tests | ||
run: | | ||
for dir in ${{ steps.changed-plugins.outputs.changed-plugins }}; do | ||
cd $dir | ||
poetry run pytest | ||
cd .. | ||
done |
This file was deleted.
Oops, something went wrong.
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