Skip to content

Merge pull request #22 from reedho/html-support #86

Merge pull request #22 from reedho/html-support

Merge pull request #22 from reedho/html-support #86

Workflow file for this run

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 }}