diff --git a/.gitea/workflows/tests.yml b/.gitea/workflows/tests.yml new file mode 100644 index 0000000..6ca85b6 --- /dev/null +++ b/.gitea/workflows/tests.yml @@ -0,0 +1,157 @@ +on: + push: + branches: + - "*" + +name: ๐Ÿงชโœจ Tests Workflow + +jobs: + + LicenseCheck: + name: License Check + runs-on: ubuntu-latest + steps: + + - name: ๐Ÿ›ก๏ธ ๐Ÿ”’ Add Siteworx CA Certificates + run: | + apt update && apt install -yq ca-certificates curl + curl -Ls https://siteworxpro.com/hosted/Siteworx+Root+CA.pem -o /usr/local/share/ca-certificates/sw.crt + update-ca-certificates + + - name: ๐Ÿ“– ๐Ÿ” Checkout Repository Code + uses: actions/checkout@v2 + with: + fetch-depth: 1 + + - name: ๐Ÿ”‘ ๐Ÿ” Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Install Composer Libraries + run: | + docker run --rm \ + --volumes-from ${{ env.JOB_CONTAINER_NAME }} \ + -w ${{ github.workspace }} \ + siteworxpro/composer \ + install --ignore-platform-reqs --no-interaction --prefer-dist --optimize-autoloader + + - name: Run License Check + run: | + docker run --rm \ + --volumes-from ${{ env.JOB_CONTAINER_NAME }} \ + -w ${{ github.workspace }} \ + siteworxpro/composer \ + run tests:license + + CodeLint: + name: Code Lint + runs-on: ubuntu-latest + steps: + - name: ๐Ÿ›ก๏ธ ๐Ÿ”’ Add Siteworx CA Certificates + run: | + apt update && apt install -yq ca-certificates curl + curl -Ls https://siteworxpro.com/hosted/Siteworx+Root+CA.pem -o /usr/local/share/ca-certificates/sw.crt + update-ca-certificates + + - name: ๐Ÿ“– ๐Ÿ” Checkout Repository Code + uses: actions/checkout@v2 + with: + fetch-depth: 1 + + - name: ๐Ÿ”‘ ๐Ÿ” Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Install Composer Libraries + run: | + docker run --rm \ + --volumes-from ${{ env.JOB_CONTAINER_NAME }} \ + -w ${{ github.workspace }} \ + siteworxpro/composer \ + install --ignore-platform-reqs --no-interaction --prefer-dist --optimize-autoloader + + - name: Run Code Lint + run: | + docker run --rm \ + --volumes-from ${{ env.JOB_CONTAINER_NAME }} \ + -w ${{ github.workspace }} \ + siteworxpro/composer \ + run tests:lint + + CodeSniffer: + name: Code Sniffer + runs-on: ubuntu-latest + steps: + - name: ๐Ÿ›ก๏ธ ๐Ÿ”’ Add Siteworx CA Certificates + run: | + apt update && apt install -yq ca-certificates curl + curl -Ls https://siteworxpro.com/hosted/Siteworx+Root+CA.pem -o /usr/local/share/ca-certificates/sw.crt + update-ca-certificates + + - name: ๐Ÿ“– ๐Ÿ” Checkout Repository Code + uses: actions/checkout@v2 + with: + fetch-depth: 1 + + - name: ๐Ÿ”‘ ๐Ÿ” Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Install Composer Libraries + run: | + docker run --rm \ + --volumes-from ${{ env.JOB_CONTAINER_NAME }} \ + -w ${{ github.workspace }} \ + siteworxpro/composer \ + install --ignore-platform-reqs --no-interaction --prefer-dist --optimize-autoloader + + - name: Run Code Sniffer + run: | + docker run --rm \ + --volumes-from ${{ env.JOB_CONTAINER_NAME }} \ + -w ${{ github.workspace }} \ + siteworxpro/composer \ + run tests:phpstan + + UnitTests: + name: Unit Tests + runs-on: ubuntu-latest + steps: + - name: ๐Ÿ›ก๏ธ ๐Ÿ”’ Add Siteworx CA Certificates + run: | + apt update && apt install -yq ca-certificates curl + curl -Ls https://siteworxpro.com/hosted/Siteworx+Root+CA.pem -o /usr/local/share/ca-certificates/sw.crt + update-ca-certificates + + - name: ๐Ÿ“– ๐Ÿ” Checkout Repository Code + uses: actions/checkout@v2 + with: + fetch-depth: 1 + + - name: ๐Ÿ”‘ ๐Ÿ” Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Install Composer Libraries + run: | + docker run --rm \ + --volumes-from ${{ env.JOB_CONTAINER_NAME }} \ + -w ${{ github.workspace }} \ + siteworxpro/composer \ + install --ignore-platform-reqs --no-interaction --prefer-dist --optimize-autoloader + + - name: Run Unit Tests + run: | + docker run --rm \ + --volumes-from ${{ env.JOB_CONTAINER_NAME }} \ + -w ${{ github.workspace }} \ + siteworxpro/composer \ + run tests:unit