Skip to content

add simple-error reporting, refactor to only track source position of… #48

add simple-error reporting, refactor to only track source position of…

add simple-error reporting, refactor to only track source position of… #48

name: Build ISLISP interpreter
on:
workflow_dispatch:
push:
paths:
- '.github/workflows/build_interpreter.yml'
- 'launcher/**'
- 'language/**'
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
architecture: x64
cache: 'maven'
- name: Verify checkstyle
run: |
mvn -Dcheckstyle.violationSeverity=warning validate
- name: Test
run: |
mvn test
build-jar:
needs: [test]
if: ${{ startsWith(github.ref, 'refs/heads/master') }}
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
java-version: '22.0.1'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build jar
run: |
mvn package
- name: Upload jar to github nightly release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload nightly language/target/islisp.jar --clobber
build-linux:
needs: [test]
if: ${{ startsWith(github.ref, 'refs/heads/master') }}
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
java-version: '22.0.1'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build jar
run: |
mvn -Pnative -DskipTests=true package
- name: Upload linux binary to github nightly release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mv launcher/target/islisp islisp-linux
gh release upload nightly islisp-linux --clobber
- uses: actions/upload-artifact@v2
with:
name: islisp-linux
path: islisp-linux
build-windows:
needs: [test]
if: ${{ startsWith(github.ref, 'refs/heads/master') }}
runs-on: windows-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
java-version: '22.0.1'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build jar
run: |
mvn -Pnative -DskipTests=true package
- name: Upload windows binary to github nightly release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mv launcher/target/islisp.exe islisp.exe
gh release upload nightly islisp.exe --clobber
build-macos:
needs: [test]
if: ${{ startsWith(github.ref, 'refs/heads/master') }}
runs-on: macos-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
java-version: '22.0.1'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build jar
run: |
mvn -Pnative -DskipTests=true package
- name: Upload macos binary to github nightly release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mv launcher/target/islisp islisp-macos
gh release upload nightly islisp-macos --clobber
publish-docker:
needs: [build-linux]
if: ${{ startsWith(github.ref, 'refs/heads/master') }}
runs-on: ubuntu-latest
environment: 'Docker hub'
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v2
with:
name: islisp-linux
path: .
- uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
- uses: docker/build-push-action@v3
with:
context: .
file: ./ghworkflow.Dockerfile
push: true
tags: arvyy/islisp:latest