GitHub setup

This commit is contained in:
Geert Bevin 2023-04-04 09:21:48 -04:00
parent c88b734e1e
commit 7394a21115
4 changed files with 117 additions and 1 deletions

26
.github/workflows/bld.yml vendored Normal file
View file

@ -0,0 +1,26 @@
name: badge-ci
on: [push, pull_request, workflow_dispatch]
jobs:
build-project:
runs-on: ubuntu-latest
strategy:
matrix:
java-version: [ 17, 19, 20 ]
steps:
- name: Checkout source repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: ${{ matrix.java-version }}
- name: Run tests
run: ./bld download compile test

60
.github/workflows/pages.yml vendored Normal file
View file

@ -0,0 +1,60 @@
name: javadocs-pages
on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]
# 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:
# Single deploy job since we're just deploying
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout source repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up JDK 19
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 19
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build Javadocs
run: ./bld download clean javadoc
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
# Upload generated Javadocs repository
path: 'build/javadoc/'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1

30
README.md Normal file
View file

@ -0,0 +1,30 @@
# [Bld](https://github.com/rife2/rife2/wiki/What-Is-Bld) extension to generate ANTLR4 parsers
[![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
[![Release](https://img.shields.io/github/release/rife2/bld-antrl4.svg)](https://github.com/rife2/bld-antlr4/releases/latest)
[![GitHub CI](https://github.com/rife2/bld-antrl4/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-antrl4/actions/workflows/bld.yml)
An extension for generating Java sources from ANTLR4 parsers.
```java
private final Antlr4Operation antlr4Operation_ = new Antlr4Operation();
@BuildCommand
public void generateGrammar()
throws Exception {
antlr4Operation_.executeOnce(o -> o
.sourceDirectories(List.of(new File(srcMainDirectory(), "antlr")))
.outputDirectory(new File(buildDirectory(), "generated"))
.visitor()
.longMessages());
}
// compileOperation_ is part of the main project
public void compile()
throws Exception {
generateGrammar();
compileOperation_.executeOnce(o -> o
.fromProject(this)
.mainSourceDirectories(List.of(antlr4Operation_.outputDirectory())));
}
```

View file

@ -18,7 +18,7 @@ public class Antlr4Build extends Project {
public Antlr4Build() {
pkg = "rife.bld.extension";
name = "Antlr4";
version = version(0,9,3);
version = version(0,9,4);
javadocOptions.docLint(NO_MISSING);
publishRepository = repository("rife2");
publishInfo = new PublishInfo()