diff --git a/ci/generator-generic-ossf-slsa3-publish.yml b/ci/generator-generic-ossf-slsa3-publish.yml
new file mode 100644
index 0000000..a249449
--- /dev/null
+++ b/ci/generator-generic-ossf-slsa3-publish.yml
@@ -0,0 +1,68 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+
+# This workflow lets you generate SLSA provenance file for your project.
+# The generation satisfies level 3 for the provenance requirements - see https://slsa.dev/spec/v0.1/requirements
+# The project is an initiative of the OpenSSF (openssf.org) and is developed at
+# https://github.com/slsa-framework/slsa-github-generator.
+# The provenance file can be verified using https://github.com/slsa-framework/slsa-verifier.
+# For more information about SLSA and how it improves the supply-chain, visit slsa.dev.
+
+name: SLSA generic generator
+on:
+ workflow_dispatch:
+ release:
+ types: [created]
+
+permissions: read-all
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ outputs:
+ digests: ${{ steps.hash.outputs.digests }}
+
+ steps:
+ - uses: actions/checkout@v3
+
+ # ========================================================
+ #
+ # Step 1: Build your artifacts.
+ #
+ # ========================================================
+ - name: Build artifacts
+ run: |
+ # These are some amazing artifacts.
+ echo "artifact1" > artifact1
+ echo "artifact2" > artifact2
+
+ # ========================================================
+ #
+ # Step 2: Add a step to generate the provenance subjects
+ # as shown below. Update the sha256 sum arguments
+ # to include all binaries that you generate
+ # provenance for.
+ #
+ # ========================================================
+ - name: Generate subject
+ id: hash
+ run: |
+ set -euo pipefail
+
+ # List the artifacts the provenance will refer to.
+ files=$(ls artifact*)
+ # Generate the subjects (base64 encoded).
+ echo "::set-output name=digests::$(sha256sum $files | base64 -w0)"
+
+ provenance:
+ needs: [build]
+ permissions:
+ actions: read # To read the workflow path.
+ id-token: write # To sign the provenance.
+ contents: write # To add assets to a release.
+ uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.2.0
+ with:
+ base64-subjects: "${{ needs.build.outputs.digests }}"
+ upload-assets: true # Optional: Upload to a new release
diff --git a/ci/node.js.yml b/ci/node.js.yml
index 87ef0d8..a89108d 100644
--- a/ci/node.js.yml
+++ b/ci/node.js.yml
@@ -16,7 +16,7 @@ jobs:
strategy:
matrix:
- node-version: [12.x, 14.x, 16.x]
+ node-version: [14.x, 16.x, 18.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
diff --git a/ci/npm-grunt.yml b/ci/npm-grunt.yml
index eda97e1..e39ddbf 100644
--- a/ci/npm-grunt.yml
+++ b/ci/npm-grunt.yml
@@ -12,7 +12,7 @@ jobs:
strategy:
matrix:
- node-version: [12.x, 14.x, 16.x]
+ node-version: [14.x, 16.x, 18.x]
steps:
- uses: actions/checkout@v3
diff --git a/ci/npm-gulp.yml b/ci/npm-gulp.yml
index 504f22e..7606dea 100644
--- a/ci/npm-gulp.yml
+++ b/ci/npm-gulp.yml
@@ -12,7 +12,7 @@ jobs:
strategy:
matrix:
- node-version: [12.x, 14.x, 16.x]
+ node-version: [14.x, 16.x, 18.x]
steps:
- uses: actions/checkout@v3
diff --git a/ci/properties/generator-generic-ossf-slsa3-publish.properties.json b/ci/properties/generator-generic-ossf-slsa3-publish.properties.json
new file mode 100644
index 0000000..32cf63d
--- /dev/null
+++ b/ci/properties/generator-generic-ossf-slsa3-publish.properties.json
@@ -0,0 +1,7 @@
+{
+ "name": "SLSA Generic generator",
+ "creator": "Open Source Security Foundation (OpenSSF)",
+ "description": "Generate SLSA3 provenance for your existing release workflows",
+ "iconName": "generator-generic-ossf-slsa3-publish",
+ "categories": ["Continuous integration", "Go", "Elixir", "Erlang", "PHP", "Haskell", "Rust", "Java", "Scala", "Gradle", "Maven", "Python", "C", "C++", "TypeScript", "JavaScript", "npm", "Ruby", "HTML", "Composer", "Makefile", "Ada"]
+}
diff --git a/ci/webpack.yml b/ci/webpack.yml
index 6449fe7..0bc6406 100644
--- a/ci/webpack.yml
+++ b/ci/webpack.yml
@@ -12,7 +12,7 @@ jobs:
strategy:
matrix:
- node-version: [12.x, 14.x, 16.x]
+ node-version: [14.x, 16.x, 18.x]
steps:
- uses: actions/checkout@v3
diff --git a/icons/generator-generic-ossf-slsa3-publish.svg b/icons/generator-generic-ossf-slsa3-publish.svg
new file mode 100644
index 0000000..ea77468
--- /dev/null
+++ b/icons/generator-generic-ossf-slsa3-publish.svg
@@ -0,0 +1,11 @@
+
+
diff --git a/icons/html.svg b/icons/html.svg
new file mode 100644
index 0000000..b7c6bb9
--- /dev/null
+++ b/icons/html.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/hugo.svg b/icons/hugo.svg
new file mode 100644
index 0000000..ea72a6f
--- /dev/null
+++ b/icons/hugo.svg
@@ -0,0 +1,9 @@
+
diff --git a/icons/jekyll-tube.svg b/icons/jekyll-tube.svg
new file mode 100644
index 0000000..89dd55d
--- /dev/null
+++ b/icons/jekyll-tube.svg
@@ -0,0 +1 @@
+
diff --git a/pages/gatsby.yml b/pages/gatsby.yml
deleted file mode 100644
index 4f2857d..0000000
--- a/pages/gatsby.yml
+++ /dev/null
@@ -1,96 +0,0 @@
-# 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/hugo.yml b/pages/hugo.yml
index c9f2824..f273fb2 100644
--- a/pages/hugo.yml
+++ b/pages/hugo.yml
@@ -1,5 +1,4 @@
# Sample workflow for building and deploying a Hugo site to GitHub Pages
-#
name: Deploy Hugo site to Pages
on:
@@ -31,7 +30,7 @@ jobs:
build:
runs-on: ubuntu-latest
env:
- HUGO_VERSION: 0.99.0
+ HUGO_VERSION: 0.102.3
steps:
- name: Install Hugo CLI
run: |
@@ -45,6 +44,10 @@ jobs:
id: pages
uses: actions/configure-pages@v2
- name: Build with Hugo
+ env:
+ # For maximum backward compatibility with Hugo modules
+ HUGO_ENVIRONMENT: production
+ HUGO_ENV: production
run: |
hugo \
--minify \
diff --git a/pages/jekyll.yml b/pages/jekyll.yml
deleted file mode 100644
index 5c7b90c..0000000
--- a/pages/jekyll.yml
+++ /dev/null
@@ -1,56 +0,0 @@
-# Sample workflow for building and deploying a Jekyll site to GitHub Pages
-name: Deploy Jekyll 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: Setup Ruby
- uses: ruby/setup-ruby@v1
- with:
- ruby-version: '3.0' # Not needed with a .ruby-version file
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- cache-version: 0 # Increment this number if you need to re-download cached gems
- - name: Setup Pages
- id: pages
- uses: actions/configure-pages@v2
- - name: Build with Jekyll
- # Outputs to the './_site' directory by default
- run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
- - name: Upload artifact
- # Automatically uploads an artifact from the './_site' directory by default
- uses: actions/upload-pages-artifact@v1
-
- # 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
deleted file mode 100644
index 5c2bf67..0000000
--- a/pages/nextjs.yml
+++ /dev/null
@@ -1,94 +0,0 @@
-# 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
deleted file mode 100644
index 4178f18..0000000
--- a/pages/nuxtjs.yml
+++ /dev/null
@@ -1,89 +0,0 @@
-# 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
deleted file mode 100644
index 7d82424..0000000
--- a/pages/properties/gatsby.properties.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "name": "Gatsby",
- "creator": "GitHub Actions",
- "description": "Package a Gatsby site.",
- "iconName": "gatsby",
- "categories": ["Pages"]
-}
\ No newline at end of file
diff --git a/pages/properties/hugo.properties.json b/pages/properties/hugo.properties.json
index 1fa902c..b6f6dc7 100644
--- a/pages/properties/hugo.properties.json
+++ b/pages/properties/hugo.properties.json
@@ -1,7 +1,6 @@
{
"name": "Hugo",
- "creator": "GitHub Actions",
"description": "Package a Hugo site.",
"iconName": "hugo",
- "categories": ["Pages"]
+ "categories": ["Pages", "Hugo"]
}
\ No newline at end of file
diff --git a/pages/properties/jekyll-gh-pages.properties.json b/pages/properties/jekyll-gh-pages.properties.json
index 6f278c8..3e38602 100644
--- a/pages/properties/jekyll-gh-pages.properties.json
+++ b/pages/properties/jekyll-gh-pages.properties.json
@@ -1,7 +1,6 @@
{
"name": "GitHub Pages Jekyll",
- "creator": "GitHub Actions",
"description": "Package a Jekyll site with GitHub Pages dependencies preinstalled.",
"iconName": "jekyll-tube",
- "categories": ["Pages"]
+ "categories": ["Pages", "Jekyll"]
}
diff --git a/pages/properties/jekyll.properties.json b/pages/properties/jekyll.properties.json
deleted file mode 100644
index a6c9d5c..0000000
--- a/pages/properties/jekyll.properties.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "name": "Jekyll",
- "creator": "GitHub Actions",
- "description": "Package a Jekyll site.",
- "iconName": "jekyll-tube",
- "categories": ["Pages"]
-}
diff --git a/pages/properties/nextjs.properties.json b/pages/properties/nextjs.properties.json
deleted file mode 100644
index 0b9d3b4..0000000
--- a/pages/properties/nextjs.properties.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "name": "Next.js",
- "creator": "GitHub Actions",
- "description": "Package a Next.js site.",
- "iconName": "nextjs",
- "categories": ["Pages"]
-}
diff --git a/pages/properties/nuxtjs.properties.json b/pages/properties/nuxtjs.properties.json
deleted file mode 100644
index b799074..0000000
--- a/pages/properties/nuxtjs.properties.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "name": "NuxtJS",
- "creator": "GitHub Actions",
- "description": "Package a NuxtJS site.",
- "iconName": "nuxtjs",
- "categories": ["Pages"]
-}
\ No newline at end of file
diff --git a/pages/properties/static.properties.json b/pages/properties/static.properties.json
index 7181b6e..372579c 100644
--- a/pages/properties/static.properties.json
+++ b/pages/properties/static.properties.json
@@ -2,5 +2,5 @@
"name": "Static HTML",
"description": "Deploy static files in a repository without a build.",
"iconName": "html",
- "categories": ["Pages"]
+ "categories": ["Pages", "HTML", "JavaScript", "CSS"]
}
diff --git a/pages/static.yml b/pages/static.yml
index d466e24..9e0e871 100644
--- a/pages/static.yml
+++ b/pages/static.yml
@@ -39,4 +39,4 @@ jobs:
path: '.'
- name: Deploy to GitHub Pages
id: deployment
- uses: actions/deploy-pages@main
+ uses: actions/deploy-pages@v1