Merge pull request #22 from reedho/html-support #86
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI / CD | |
on: [push] | |
jobs: | |
static-analysis: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup Java 11 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 11 | |
- name: Install Clojure Tools | |
uses: DeLaGuardo/[email protected] | |
with: | |
cli: 1.10.1.693 | |
- name: Install Snyk | |
uses: snyk/actions/setup@master | |
- name: Generate pom.xml | |
shell: bash | |
run: clojure -Spom | |
- name: Run Snyk to check for vulnerabilities | |
run: snyk monitor | |
env: | |
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} | |
- name: Run FOSSA to scan licenses | |
uses: fossa-contrib/fossa-action@v1 | |
with: | |
fossa-api-key: ${{ secrets.FOSSA_API_KEY }} | |
build: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup Java 11 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 11 | |
- name: Install Clojure Tools | |
uses: DeLaGuardo/[email protected] | |
with: | |
cli: 1.10.1.693 | |
- name: Test Linux & OSX | |
if: ${{ matrix.os != 'windows-latest' }} | |
shell: bash | |
run: clojure -M:kaocha --plugin cloverage --codecov | |
- name: Test Windows | |
if: ${{ matrix.os == 'windows-latest' }} | |
shell: powershell | |
run: clojure -M:kaocha --plugin cloverage --codecov | |
- uses: codecov/codecov-action@v1 | |
with: | |
files: target/coverage/codecov.json | |
flags: ${{ matrix.os }} | |
- name: Build JAR | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
run: package/package.sh | |
- name: Upload JAR Artifacts | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
uses: actions/upload-artifact@v2-preview | |
with: | |
name: cq-jvm | |
path: target/cq* | |
native: | |
if: startsWith(github.ref, 'refs/tags/') | |
needs: build | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
gu-binary: [gu, gu.cmd] | |
exclude: | |
- os: ubuntu-latest | |
gu-binary: gu.cmd | |
- os: macos-latest | |
gu-binary: gu.cmd | |
- os: windows-latest | |
gu-binary: gu | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Download Artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: cq-jvm | |
path: target | |
- name: Setup GraalVM | |
uses: DeLaGuardo/[email protected] | |
with: | |
graalvm: '21.0.0.2' | |
java: java11 | |
arch: amd64 | |
- name: Install native-image Component | |
run: | | |
${{ matrix.gu-binary }} install native-image | |
- name: Install MSVC Toolset (Windows) | |
if: ${{ matrix.os == 'windows-latest' }} | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Build Linux | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
shell: bash | |
run: | | |
./package/build-native.sh | |
mv target/cq target/cq-native-linux | |
- name: Build OSX | |
if: ${{ matrix.os == 'macos-latest' }} | |
shell: bash | |
run: | | |
./package/build-native.sh | |
mv target/cq target/cq-native-macos | |
- name: Build Windows | |
if: ${{ matrix.os == 'windows-latest' }} | |
shell: powershell | |
run: | | |
package\build-native.bat | |
mv target\cq.exe target\cq-native-windows.exe | |
- name: Upload Native Image Artifact | |
uses: actions/upload-artifact@v2-preview | |
with: | |
name: cq-all | |
path: target/cq* | |
release: | |
if: startsWith(github.ref, 'refs/tags/') | |
needs: native | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Download Artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: cq-all | |
path: target | |
- name: Rename cq-jvm to -SLOW | |
shell: bash | |
run: | | |
mv target/cq-jvm target/cq-jvm-slow | |
mv target/cq-jvm.exe target/cq-jvm-slow.exe | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
./target/cq-jvm* | |
./target/cq-native* | |
./target/cq.jar | |
LICENSE | |
README.md | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |