Skip to content

Commit

Permalink
PO-489 - Add Github actions
Browse files Browse the repository at this point in the history
  • Loading branch information
mkraeml committed Nov 25, 2024
1 parent 8acb4f0 commit 1bf909f
Show file tree
Hide file tree
Showing 4 changed files with 351 additions and 0 deletions.
74 changes: 74 additions & 0 deletions .github/workflows/admin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: Admin
on:
push:
branches:
- trunk
pull_request:
# TODO: paths: src/Resources/app/administration
workflow_dispatch:

permissions:
contents: read
id-token: write

jobs:
eslint:
runs-on: ubuntu-latest
steps:
- uses: octo-sts/action@main
id: octo-sts
with:
scope: shopware
identity: ${{ github.event.repository.name }}
- uses: shopware/github-actions/setup-extension@main
with:
extensionName: ${{ github.event.repository.name }}
install: true
installAdmin: true
dependencies: |
[
{
"name":"SwagCommercial",
"repo": "https://github.com/shopware/SwagCommercial.git",
"token": "${{ steps.octo-sts.outputs.token }}"
},
{
"name":"SwagCmsExtensions",
"repo": "https://github.com/shopware/SwagCmsExtensions.git",
"token": "${{ steps.octo-sts.outputs.token }}"
}
]
extraRepositories: |
{
"${{ github.event.repository.name }}": {
"type": "path",
"url": "custom/plugins/${{ github.event.repository.name }}",
"symlink": true
},
"SwagCommercial": {
"type": "path",
"url": "custom/plugins/SwagCommercial",
"symlink": true
},
"SwagCmsExtensions": {
"type": "path",
"url": "custom/plugins/SwagCmsExtensions",
"symlink": true
}
}
- name: Prepare ESLint
run: |
bin/console bundle:dump
composer admin:generate-entity-schema-types
- name: Run ESLint
env:
ADMIN_PATH: ${{ github.workspace }}/src/Administration/Resources/app/administration
working-directory: custom/plugins/${{ github.event.repository.name }}/src/Resources/app/administration
run: |
npm run lint-fix
npm run lint
jest:
uses: shopware/github-actions/.github/workflows/admin-jest.yml@main
with:
extensionName: ${{ github.event.repository.name }}
uploadCoverage: false
104 changes: 104 additions & 0 deletions .github/workflows/intergration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: Integration
on:
push:
branches:
- trunk
pull_request:
workflow_dispatch:

permissions:
contents: read
id-token: write

jobs:
build_zip:
name: Build and validate zip
uses: shopware/github-actions/.github/workflows/build-zip.yml@main
with:
extensionName: ${{ github.event.repository.name }}

phpunit:
runs-on: ubuntu-latest
strategy:
matrix:
MYSQL_IMAGE: ["mysql:8.0", "mariadb:10.11"]
PLATFORM_BRANCH: ["v6.6.0.0", "trunk"]
PHP_VERSION: ["8.2", "8.3"]
WITH_COMMERCIAL: [true, false]
env:
REDIS_URL: redis://localhost:6379
services:
redis:
image: redis:alpine
ports:
- "6379:6379"
steps:
- uses: octo-sts/action@main
id: octo-sts
with:
scope: shopware
identity: ${{ github.event.repository.name }}
- name: Prepare dependency list
id: dependency-list
shell: bash
run: |
DEPS='[
{
"name":"SwagCmsExtensions",
"repo": "https://github.com/shopware/SwagCmsExtensions.git",
"token": "${{ steps.octo-sts.outputs.token }}"
}
]'
REPOS='{
"${{ github.event.repository.name }}": {
"type": "path",
"url": "custom/plugins/${{ github.event.repository.name }}",
"symlink": true
},
"SwagCmsExtensions": {
"type": "path",
"url": "custom/plugins/SwagCmsExtensions",
"symlink": true
}
}'
if [[ "${{ matrix.WITH_COMMERCIAL }}" == "true" ]]; then
DEPS=$(jq -s 'add' <(echo $DEPS) <(echo '[
{
"name":"SwagCommercial",
"repo": "https://github.com/shopware/SwagCommercial.git",
"branch": "${{ matrix.PLATFORM_BRANCH }}",
"token": "${{ steps.octo-sts.outputs.token }}"
}]'))
REPOS=$(jq -s 'add' <(echo $REPOS) <(echo '{
"SwagCommercial": {
"type": "path",
"url": "custom/plugins/SwagCommercial",
"symlink": true
}
}'))
fi
echo "deps=$(echo $DEPS | jq -c .)" >> "$GITHUB_OUTPUT"
echo "repos=$(echo $REPOS | jq -c .)" >> "$GITHUB_OUTPUT"
- uses: shopware/github-actions/setup-extension@main
with:
extensionName: ${{ github.event.repository.name }}
mysqlVersion: ${{ matrix.MYSQL_IMAGE }}
shopwareVersion: ${{ matrix.PLATFORM_BRANCH }}
phpVersion: ${{ matrix.PHP_VERSION }}
install: true
installAdmin: true
installStorefront: true
dependencies: ${{steps.dependency-list.outputs.deps}}
extraRepositories: ${{steps.dependency-list.outputs.repos}}
- name: Run PHPUnit
working-directory: custom/plugins/${{ github.event.repository.name }}
run: |
composer dump-autoload --dev
php -d pcov.enabled=1 -d pcov.directory=$PWD/src -d pcov.exclude='~(vendor|tests|node_modules)~' \
${GITHUB_WORKSPACE}/vendor/bin/phpunit \
--configuration phpunit.xml.dist \
--log-junit ${GITHUB_WORKSPACE}/phpunit.junit.xml \
--coverage-cobertura ${GITHUB_WORKSPACE}/cobertura.xml \
--coverage-text
108 changes: 108 additions & 0 deletions .github/workflows/php.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: PHP checks

on:
push:
branches:
- trunk
pull_request:
# TODO: paths: src/**/*.php & composer.json ...
workflow_dispatch:
workflow_call:

permissions:
contents: read
id-token: write

jobs:
phpstan:
runs-on: ubuntu-latest
strategy:
matrix:
PLATFORM_BRANCH: ["6.6.0.0", "trunk"]
fail-fast: false
steps:
- uses: octo-sts/action@main
id: octo-sts
with:
scope: shopware
identity: ${{ github.event.repository.name }}
- uses: shopware/github-actions/setup-extension@main
with:
extensionName: ${{ github.event.repository.name }}
install: true
installAdmin: true
installStorefront: true
dependencies: |
[
{
"name":"SwagCommercial",
"repo": "https://github.com/shopware/SwagCommercial.git",
"token": "${{ steps.octo-sts.outputs.token }}"
},
{
"name":"SwagCmsExtensions",
"repo": "https://github.com/shopware/SwagCmsExtensions.git",
"token": "${{ steps.octo-sts.outputs.token }}"
}
]
extraRepositories: |
{
"${{ github.event.repository.name }}": {
"type": "path",
"url": "custom/plugins/${{ github.event.repository.name }}",
"symlink": true
},
"SwagCommercial": {
"type": "path",
"url": "custom/plugins/SwagCommercial",
"symlink": true
},
"SwagCmsExtensions": {
"type": "path",
"url": "custom/plugins/SwagCmsExtensions",
"symlink": true
}
}
- name: Prepare phpstan
working-directory: custom/plugins/${{ github.event.repository.name }}
run: |
composer dump-autoload --dev -d "${GITHUB_WORKSPACE}/custom/plugins/SwagCmsExtensions"
composer dump-autoload --dev -d "${GITHUB_WORKSPACE}/custom/plugins/SwagCommercial"
sed -i 's|reportUnmatchedIgnoredErrors: true|reportUnmatchedIgnoredErrors: false|' ./phpstan.neon.dist
if [[ "${{ matrix.PLATFORM_BRANCH }}" == "6.6.0.0" ]]; then
sed -i '/type_perfect/d' ./phpstan.neon.dist
sed -i '/narrow_return: true/d' ./phpstan.neon.dist
sed -i '/no_mixed: true/d' ./phpstan.neon.dist
sed -i '/null_over_false: true/d' ./phpstan.neon.dist
fi
- run: |
symfony composer -d custom/plugins/${{ github.event.repository.name }} run phpstan
validate-openapi-typescript:
runs-on: ubuntu-latest
steps:
- name: Setup Extension
uses: shopware/github-actions/setup-extension@main
env:
runner: ${{ runner.environment }}
with:
extensionName: ${{ github.event.repository.name }}
install: true
installAdmin: true
installStorefront: true
extraRepositories: |
{
"${{ github.event.repository.name }}": {
"type": "path",
"url": "custom/plugins/${{ github.event.repository.name }}",
"symlink": true
}
}
- working-directory: custom/plugins/${{ github.event.repository.name }}
run: |
${GITHUB_WORKSPACE}/bin/console bundle:dump
composer init:admin
composer openapi:generate
git update-index --refresh || printf ''
git diff-index "${{ github.sha }}" --quiet -- src/Resources/app/administration/src/types/openapi.d.ts || (echo "Please run 'composer openapi:generate' to update openapi.d.ts" && exit 1)
65 changes: 65 additions & 0 deletions .github/workflows/storefront.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Storefront
on:
push:
branches:
- trunk
pull_request:
# TODO: paths: src/Resources/app/storefront
workflow_dispatch:

permissions:
contents: read
id-token: write

jobs:
eslint:
runs-on: ubuntu-latest
steps:
- uses: octo-sts/action@main
id: octo-sts
with:
scope: shopware
identity: ${{ github.event.repository.name }}
- uses: shopware/github-actions/setup-extension@main
with:
extensionName: ${{ github.event.repository.name }}
install: true
installStorefront: true
dependencies: |
[
{
"name":"SwagCommercial",
"repo": "https://github.com/shopware/SwagCommercial.git",
"token": "${{ steps.octo-sts.outputs.token }}"
},
{
"name":"SwagCmsExtensions",
"repo": "https://github.com/shopware/SwagCmsExtensions.git",
"token": "${{ steps.octo-sts.outputs.token }}"
}
]
extraRepositories: |
{
"${{ github.event.repository.name }}": {
"type": "path",
"url": "custom/plugins/${{ github.event.repository.name }}",
"symlink": true
},
"SwagCommercial": {
"type": "path",
"url": "custom/plugins/SwagCommercial",
"symlink": true
},
"SwagCmsExtensions": {
"type": "path",
"url": "custom/plugins/SwagCmsExtensions",
"symlink": true
}
}
- name: Run ESLint
env:
STOREFRONT_PATH: ${{ github.workspace }}/src/Storefront/Resources/app/storefront
working-directory: custom/plugins/${{ github.event.repository.name }}
run: |
composer init:storefront
composer lint:storefront:ci

0 comments on commit 1bf909f

Please sign in to comment.