Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: CI

on:
push:
branches: ['**']
pull_request:
branches: [master]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'

- uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-maven-

- run: mvn test -B -Dsurefire.useFile=false
54 changes: 49 additions & 5 deletions antidot-deployment.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,50 @@
To deploy to the internal Antidot Gitlab, you can use Maven. Some tests may
be broken for now. So if the right tests pass, you can skip the test phase to
deploy.
# Antidot Deployment Guide

Make sure you have a settings file in your Maven home containing a Gitlab
token with the right permissions.
This document describes how to build, test, and release flexmark-java to the internal Antidot Maven repository hosted on GitLab.

## Target repository

Artifacts are published to the internal Antidot GitLab Maven registry:

```
https://scm.mrs.antidot.net/api/v4/projects/672/packages/maven
```

This is configured in the root `pom.xml` under `<distributionManagement>`.

## Opening the project in IntelliJ IDEA

Install Maven if needed:

```bash
brew install maven
```

Then in IntelliJ IDEA, right-click the root `pom.xml` and select **Add as Maven Project**. IDEA will import all 58 modules automatically.

## Managing multiple GitHub accounts

Having both a personal and a professional GitHub account on the same machine can cause issues: SSH will use the first key available in the agent, which may not match the expected account.

A simple solution is to explicitly specify which SSH key to use via the `GIT_SSH_COMMAND` variable:

```bash
GIT_SSH_COMMAND='ssh -i ~/.ssh/id_ed25519_gitlab -o IdentitiesOnly=yes' git push
```

This can be prepended to any git command (`push`, `pull`, `fetch`, etc.) without affecting the global configuration.

## Continuous Integration

A GitHub Actions workflow runs on every push and on pull requests targeting `master`. It builds the project and runs the test suite on Java 21.

See: [`.github/workflows/ci.yml`](.github/workflows/ci.yml)

The CI does **not** deploy automatically — releases are triggered manually.

## Known test limitations

Two tests are intentionally disabled:

- **Pegdown profile tests** — skipped on Java 9+. Pegdown's underlying parser (Parboiled) relies on reflective access to JVM internals that have been restricted since Java 9, causing a runtime error. These tests only work on Java 8.
- **Abbreviation/typographic quotes interaction test** — marked as ignored. The test is locale-sensitive: abbreviation matching for accented characters (e.g. `É.U.`) behaves inconsistently across systems due to how Java handles regex word boundaries with non-ASCII characters.
13 changes: 0 additions & 13 deletions buildSrc/build.gradle.kts

This file was deleted.

59 changes: 0 additions & 59 deletions flexmark-all/build.gradle.kts

This file was deleted.

18 changes: 0 additions & 18 deletions flexmark-core-test/build.gradle.kts

This file was deleted.

38 changes: 0 additions & 38 deletions flexmark-docx-converter/build.gradle.kts

This file was deleted.

22 changes: 0 additions & 22 deletions flexmark-ext-abbreviation/build.gradle.kts

This file was deleted.

Loading
Loading