summaryrefslogtreecommitdiffstats
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/codeql.yml34
-rw-r--r--.github/workflows/deploy.yml58
-rw-r--r--.github/workflows/release-notes.yml14
-rw-r--r--.github/workflows/test.yml44
4 files changed, 150 insertions, 0 deletions
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
new file mode 100644
index 0000000..008b770
--- /dev/null
+++ b/.github/workflows/codeql.yml
@@ -0,0 +1,34 @@
+name: "CodeQL"
+
+on:
+ push:
+ branches:
+ - main
+ - "!dependabot/**"
+ pull_request:
+ # The branches below must be a subset of the branches above
+ branches:
+ - main
+ schedule:
+ - cron: "0 0 * * 0"
+
+jobs:
+ analyze:
+ name: Analyze
+ runs-on: ubuntu-latest
+ permissions:
+ actions: read
+ contents: read
+ security-events: write
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v2
+ with:
+ languages: "javascript"
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v2
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 0000000..e8a396e
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,58 @@
+name: Deploy
+
+on:
+ release:
+ types:
+ - published
+
+env:
+ FORCE_COLOR: 2
+ NODE: 16
+
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+ if: github.repository == 'twbs/icons'
+
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v3
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v3
+ with:
+ node-version: "${{ env.NODE }}"
+ cache: npm
+
+ - name: Install npm dependencies
+ run: npm ci
+
+ - name: Build the icons
+ run: npm run icons
+
+ - name: Build the docs
+ run: npm run docs-build
+
+ - name: Deploy docs
+ uses: peaceiris/actions-gh-pages@v3
+ with:
+ allow_empty_commit: false
+ personal_token: ${{ secrets.PERSONAL_TOKEN }}
+ publish_branch: gh-pages
+ publish_dir: ./_site/
+
+ publish:
+ needs: deploy
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+
+ - uses: actions/setup-node@v3
+ with:
+ node-version: "${{ env.NODE }}"
+ registry-url: "https://registry.npmjs.org"
+
+ - name: Publish on npm
+ run: npm publish
+ env:
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml
new file mode 100644
index 0000000..1c4f4be
--- /dev/null
+++ b/.github/workflows/release-notes.yml
@@ -0,0 +1,14 @@
+name: Release notes
+
+on:
+ push:
+ branches:
+ - main
+
+jobs:
+ update_release_draft:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: release-drafter/release-drafter@v5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..29cad2c
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,44 @@
+name: Tests
+
+on:
+ push:
+ branches-ignore:
+ - "dependabot/**"
+ pull_request:
+
+env:
+ FORCE_COLOR: 2
+ NODE: 16
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v3
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v3
+ with:
+ node-version: "${{ env.NODE }}"
+ cache: npm
+
+ - run: java -version
+
+ - name: Install npm dependencies
+ run: npm ci
+
+ - name: Build the icons
+ run: npm run icons
+
+ - name: Run tests
+ run: npm test
+
+ - name: Run linkinator
+ uses: JustinBeckwith/linkinator-action@v1
+ with:
+ paths: _site
+ recurse: true
+ verbosity: error
+ skip: "^(?!http://localhost)"