on: push: branches: - "*" name: ๐Ÿงชโœจ Tests Workflow jobs: DatabaseMigrations: name: ๐Ÿงช โœจ Database Migrations 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: Start Support Containers run: | echo "Starting Support Containers" docker network create "${{ env.JOB_CONTAINER_NAME }}" docker run --rm \ -p 5432 \ --network "${{ env.JOB_CONTAINER_NAME }}" \ --name ${{ env.JOB_CONTAINER_NAME }}-postgres \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=postgres \ -e POSTGRES_DB=postgres \ -d postgres:17 - name: Run Migrations run: | docker run \ --name ${{ env.JOB_CONTAINER_NAME }}-migrate \ --rm \ --volumes-from ${{ env.JOB_CONTAINER_NAME }} \ --network "${{ env.JOB_CONTAINER_NAME }}" \ -w ${{ github.workspace }} \ siteworxpro/migrate:v4.18.3 -database "postgres://postgres:postgres@${{ env.JOB_CONTAINER_NAME }}-postgres:5432/postgres?sslmode=disable" -path db/migrations up - name: Rollback Migrations run: | docker run \ --name ${{ env.JOB_CONTAINER_NAME }}-migrate \ --rm \ --volumes-from ${{ env.JOB_CONTAINER_NAME }} \ --network "${{ env.JOB_CONTAINER_NAME }}" \ -w ${{ github.workspace }} \ siteworxpro/migrate:v4.18.3 -database "postgres://postgres:postgres@${{ env.JOB_CONTAINER_NAME }}-postgres:5432/postgres?sslmode=disable" -path db/migrations down --all - name: Tear Down Support Containers if: always() run: | docker stop ${{ env.JOB_CONTAINER_NAME }}-postgres docker network rm "${{ env.JOB_CONTAINER_NAME }}" LibraryAudit: name: ๐Ÿ›ก๏ธ ๐Ÿ”’ Library Audit 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 Library Audit run: | docker run --rm \ --volumes-from ${{ env.JOB_CONTAINER_NAME }} \ -w ${{ github.workspace }} \ siteworxpro/composer \ audit 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