Skip to content
Latchkey

WAR CI workflow (jgraph/drawio)

The WAR CI workflow from jgraph/drawio, explained and optimized by Latchkey.

F

CI health: F - at risk

Point runs-on at Latchkey and get caching, run de-duplication, job timeouts, SHA-pinned actions, self-healing for flaky steps, and up to 58% lower cost, applied automatically.

Grade your own workflow free or run it on Latchkey →
Source: jgraph/drawio.github/workflows/war.ymlLicense Apache-2.0View source

What it does

This is the WAR CI workflow from the jgraph/drawio repository, a real project running GitHub Actions. It is shown here with attribution under its Apache-2.0 license.

Below, Latchkey shows a faster, safer version produced by its optimization engine.

The workflow

workflow (.yml)
# This workflow will build a Java project with Ant
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-ant

name: WAR CI

on:
  push:
    tags:
      - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Set up JDK 1.8
      uses: actions/setup-java@v3
      with:
        distribution: 'zulu'
        java-version: '8'
    - name: Build war with Ant
      run: |
        cd etc/build
        ant war
    - name: Create Release
      uses: softprops/action-gh-release@v1
      with:
        files: build/draw.war

The same workflow, on Latchkey

Estimated ~20% faster on cache hits, plus fewer wasted runs and a safer supply chain. Added and changed lines are highlighted.

# This workflow will build a Java project with Ant
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-ant
 
name: WAR CI
 
on:
  push:
    tags:
      - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
 
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
 
jobs:
  build:
    timeout-minutes: 30
 
    runs-on: latchkey-small
 
    steps:
    - uses: actions/checkout@v3
    - name: Set up JDK 1.8
      uses: actions/setup-java@v3
      with:
        cache: 'maven'
        distribution: 'zulu'
        java-version: '8'
    - name: Build war with Ant
      run: |
        cd etc/build
        ant war
    - name: Create Release
      uses: softprops/action-gh-release@v1
      with:
        files: build/draw.war
 

What changed

1 third-party action is referenced by a movable tag. Pin it to the commit SHA (Latchkey resolves and applies this automatically) so a repointed tag cannot change what runs.

This workflow runs 1 job per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.

Actions used in this workflow