diff --git a/ci/php.yml b/ci/php.yml
new file mode 100644
index 0000000..a3bdfd7
--- /dev/null
+++ b/ci/php.yml
@@ -0,0 +1,39 @@
+name: PHP Composer
+
+on:
+ push:
+ branches: [ $default-branch ]
+ pull_request:
+ branches: [ $default-branch ]
+
+permissions:
+ contents: read
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Validate composer.json and composer.lock
+ run: composer validate --strict
+
+ - name: Cache Composer packages
+ id: composer-cache
+ uses: actions/cache@v3
+ with:
+ path: vendor
+ key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-php-
+
+ - name: Install dependencies
+ run: composer install --prefer-dist --no-progress
+
+ # Add a test script to composer.json, for instance: "test": "vendor/bin/phpunit"
+ # Docs: https://getcomposer.org/doc/articles/scripts.md
+
+ # - name: Run test suite
+ # run: composer run-script test
diff --git a/ci/properties/php.properties.json b/ci/properties/php.properties.json
new file mode 100644
index 0000000..f345a28
--- /dev/null
+++ b/ci/properties/php.properties.json
@@ -0,0 +1,6 @@
+{
+ "name": "PHP",
+ "description": "Build and test a PHP application using Composer",
+ "iconName": "php",
+ "categories": ["Continuous integration", "PHP", "Composer"]
+}
\ No newline at end of file
diff --git a/icons/gatsby.svg b/icons/gatsby.svg
new file mode 100644
index 0000000..5578b06
--- /dev/null
+++ b/icons/gatsby.svg
@@ -0,0 +1,7 @@
+
diff --git a/icons/nextjs.svg b/icons/nextjs.svg
new file mode 100644
index 0000000..c45d6e6
--- /dev/null
+++ b/icons/nextjs.svg
@@ -0,0 +1,3 @@
+
diff --git a/icons/nuxtjs.svg b/icons/nuxtjs.svg
new file mode 100644
index 0000000..bebded3
--- /dev/null
+++ b/icons/nuxtjs.svg
@@ -0,0 +1,4 @@
+
diff --git a/icons/php.svg b/icons/php.svg
new file mode 100644
index 0000000..5a3bfa9
--- /dev/null
+++ b/icons/php.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/pages/gatsby.yml b/pages/gatsby.yml
new file mode 100644
index 0000000..4f2857d
--- /dev/null
+++ b/pages/gatsby.yml
@@ -0,0 +1,96 @@
+# Sample workflow for building and deploying a Gatsby site to GitHub Pages
+#
+# To get started with Gatsby see: https://www.gatsbyjs.com/docs/quick-start/
+#
+name: Deploy Gatsby site to Pages
+
+on:
+ # Runs on pushes targeting the default branch
+ push:
+ branches: [$default-branch]
+
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+# Allow one concurrent deployment
+concurrency:
+ group: "pages"
+ cancel-in-progress: true
+
+# Default to bash
+defaults:
+ run:
+ shell: bash
+
+jobs:
+ # Build job
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Detect package manager
+ id: detect-package-manager
+ run: |
+ if [ -f "${{ github.workspace }}/yarn.lock" ]; then
+ echo "::set-output name=manager::yarn"
+ echo "::set-output name=command::install"
+ exit 0
+ elif [ -f "${{ github.workspace }}/package.json" ]; then
+ echo "::set-output name=manager::npm"
+ echo "::set-output name=command::ci"
+ exit 0
+ else
+ echo "Unable to determine packager manager"
+ exit 1
+ fi
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: "16"
+ cache: ${{ steps.detect-package-manager.outputs.manager }}
+ - name: Setup Pages
+ id: pages
+ uses: actions/configure-pages@v2
+ with:
+ # Automatically inject pathPrefix in your Gatsby configuration file.
+ #
+ # You may remove this line if you want to manage the configuration yourself.
+ static_site_generator: gatsby
+ - name: Restore cache
+ uses: actions/cache@v3
+ with:
+ path: |
+ public
+ .cache
+ key: ${{ runner.os }}-gatsby-build-${{ hashFiles('public') }}
+ restore-keys: |
+ ${{ runner.os }}-gatsby-build-
+ - name: Install dependencies
+ run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
+ - name: Build with Gatsby
+ env:
+ PREFIX_PATHS: 'true'
+ run: ${{ steps.detect-package-manager.outputs.manager }} run build
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v1
+ with:
+ path: ./public
+
+ # Deployment job
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v1
diff --git a/pages/nextjs.yml b/pages/nextjs.yml
new file mode 100644
index 0000000..5c2bf67
--- /dev/null
+++ b/pages/nextjs.yml
@@ -0,0 +1,94 @@
+# Sample workflow for building and deploying a Next.js site to GitHub Pages
+#
+# To get started with Next.js see: https://nextjs.org/docs/getting-started
+#
+name: Deploy Next.js site to Pages
+
+on:
+ # Runs on pushes targeting the default branch
+ push:
+ branches: [$default-branch]
+
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+# Allow one concurrent deployment
+concurrency:
+ group: "pages"
+ cancel-in-progress: true
+
+jobs:
+ # Build job
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Detect package manager
+ id: detect-package-manager
+ run: |
+ if [ -f "${{ github.workspace }}/yarn.lock" ]; then
+ echo "::set-output name=manager::yarn"
+ echo "::set-output name=command::install"
+ echo "::set-output name=runner::yarn"
+ exit 0
+ elif [ -f "${{ github.workspace }}/package.json" ]; then
+ echo "::set-output name=manager::npm"
+ echo "::set-output name=command::ci"
+ echo "::set-output name=runner::npx --no-install"
+ exit 0
+ else
+ echo "Unable to determine packager manager"
+ exit 1
+ fi
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: "16"
+ cache: ${{ steps.detect-package-manager.outputs.manager }}
+ - name: Setup Pages
+ uses: actions/configure-pages@v2
+ with:
+ # Automatically inject basePath in your Next.js configuration file and disable
+ # server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized).
+ #
+ # You may remove this line if you want to manage the configuration yourself.
+ static_site_generator: next
+ - name: Restore cache
+ uses: actions/cache@v3
+ with:
+ path: |
+ .next/cache
+ # Generate a new cache whenever packages or source files change.
+ key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}
+ # If source files changed but packages didn't, rebuild from a prior cache.
+ restore-keys: |
+ ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-
+ - name: Install dependencies
+ run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
+ - name: Build with Next.js
+ run: ${{ steps.detect-package-manager.outputs.runner }} next build
+ - name: Static HTML export with Next.js
+ run: ${{ steps.detect-package-manager.outputs.runner }} next export
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v1
+ with:
+ path: ./out
+
+ # Deployment job
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v1
diff --git a/pages/nuxtjs.yml b/pages/nuxtjs.yml
new file mode 100644
index 0000000..4178f18
--- /dev/null
+++ b/pages/nuxtjs.yml
@@ -0,0 +1,89 @@
+# Sample workflow for building and deploying a Nuxt site to GitHub Pages
+#
+# To get started with Nuxt see: https://nuxtjs.org/docs/get-started/installation
+#
+name: Deploy Nuxt site to Pages
+
+on:
+ # Runs on pushes targeting the default branch
+ push:
+ branches: [$default-branch]
+
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+# Allow one concurrent deployment
+concurrency:
+ group: "pages"
+ cancel-in-progress: true
+
+jobs:
+ # Build job
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Detect package manager
+ id: detect-package-manager
+ run: |
+ if [ -f "${{ github.workspace }}/yarn.lock" ]; then
+ echo "::set-output name=manager::yarn"
+ echo "::set-output name=command::install"
+ exit 0
+ elif [ -f "${{ github.workspace }}/package.json" ]; then
+ echo "::set-output name=manager::npm"
+ echo "::set-output name=command::ci"
+ exit 0
+ else
+ echo "Unable to determine packager manager"
+ exit 1
+ fi
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: "16"
+ cache: ${{ steps.detect-package-manager.outputs.manager }}
+ - name: Setup Pages
+ uses: actions/configure-pages@v2
+ with:
+ # Automatically inject router.base in your Nuxt configuration file and set
+ # target to static (https://nuxtjs.org/docs/configuration-glossary/configuration-target/).
+ #
+ # You may remove this line if you want to manage the configuration yourself.
+ static_site_generator: nuxt
+ - name: Restore cache
+ uses: actions/cache@v3
+ with:
+ path: |
+ dist
+ .nuxt
+ key: ${{ runner.os }}-nuxt-build-${{ hashFiles('dist') }}
+ restore-keys: |
+ ${{ runner.os }}-nuxt-build-
+ - name: Install dependencies
+ run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
+ - name: Static HTML export with Nuxt
+ run: ${{ steps.detect-package-manager.outputs.manager }} run generate
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v1
+ with:
+ path: ./dist
+
+ # Deployment job
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v1
diff --git a/pages/properties/gatsby.properties.json b/pages/properties/gatsby.properties.json
new file mode 100644
index 0000000..df260f8
--- /dev/null
+++ b/pages/properties/gatsby.properties.json
@@ -0,0 +1,6 @@
+{
+ "name": "Gatsby",
+ "description": "Package a Gatsby site.",
+ "iconName": "gatsby",
+ "categories": ["Pages", "Gatsby"]
+}
\ No newline at end of file
diff --git a/pages/properties/nextjs.properties.json b/pages/properties/nextjs.properties.json
new file mode 100644
index 0000000..4209908
--- /dev/null
+++ b/pages/properties/nextjs.properties.json
@@ -0,0 +1,6 @@
+{
+ "name": "Next.js",
+ "description": "Package a Next.js site.",
+ "iconName": "nextjs",
+ "categories": ["Pages", "Next"]
+}
diff --git a/pages/properties/nuxtjs.properties.json b/pages/properties/nuxtjs.properties.json
new file mode 100644
index 0000000..d79909e
--- /dev/null
+++ b/pages/properties/nuxtjs.properties.json
@@ -0,0 +1,6 @@
+{
+ "name": "NuxtJS",
+ "description": "Package a NuxtJS site.",
+ "iconName": "nuxtjs",
+ "categories": ["Pages", "Nuxt"]
+}
\ No newline at end of file