diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..46a9cc3 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,131 @@ +name: tests.yml +on: + push: {} + +jobs: + + LicenseCheck: + name: License Check + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Docker Hub Login + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Install Composer Libraries + run: | + docker run --rm \ + -v ${{ github.workspace }}:/app \ + -w /app \ + siteworxpro/composer \ + composer install --ignore-platform-reqs --no-interaction --prefer-dist --optimize-autoloader + + - name: Run License Check + run: | + docker run --rm \ + -v ${{ github.workspace }}:/app \ + -w /app \ + siteworxpro/composer \ + composer run tests:license + + CodeLint: + name: Code Lint + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Docker Hub Login + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Install Composer Libraries + run: | + docker run --rm \ + -v ${{ github.workspace }}:/app \ + -w /app \ + siteworxpro/composer \ + composer install --ignore-platform-reqs --no-interaction --prefer-dist --optimize-autoloader + + - name: Run Code Lint + run: | + docker run --rm \ + -v ${{ github.workspace }}:/app \ + -w /app \ + siteworxpro/composer \ + composer run tests:lint + + CodeSniffer: + name: Code Sniffer + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Docker Hub Login + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Install Composer Libraries + run: | + docker run --rm \ + -v ${{ github.workspace }}:/app \ + -w /app \ + siteworxpro/composer \ + composer install --ignore-platform-reqs --no-interaction --prefer-dist --optimize-autoloader + + - name: Run Code Sniffer + run: | + docker run --rm \ + -v ${{ github.workspace }}:/app \ + -w /app \ + siteworxpro/composer \ + composer run tests:sniff + + UnitTests: + name: Unit Tests + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Docker Hub Login + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Install Composer Libraries + run: | + docker run --rm \ + -v ${{ github.workspace }}:/app \ + -w /app \ + siteworxpro/composer \ + composer install --ignore-platform-reqs --no-interaction --prefer-dist --optimize-autoloader + + - name: Run Unit Tests + run: | + docker run --rm \ + -v ${{ github.workspace }}:/app \ + -w /app \ + siteworxpro/composer \ + composer run tests:unit:coverage + + - name: Upload Unit Test Coverage + uses: actions/upload-artifact@v3 + with: + path: tests/reports/junit.xml + name: unit-test-coverage