diff --git a/.github/actions/build-spec-in-docker.yml b/.github/actions/build-spec-in-docker.yml new file mode 100644 index 000000000..66e76168b --- /dev/null +++ b/.github/actions/build-spec-in-docker.yml @@ -0,0 +1,5 @@ +name: 'Build Kotlin spec in its Docker container' +runs: + using: 'docker' + image: './docker/Dockerfile' + entrypoint: '/build-spec.sh' diff --git a/.github/workflows/build-spec-on-pr-2.yml b/.github/workflows/build-spec-on-pr-2.yml new file mode 100644 index 000000000..04a20b5f6 --- /dev/null +++ b/.github/workflows/build-spec-on-pr-2.yml @@ -0,0 +1,12 @@ +name: 'Build Kotlin spec on PRs (version 2)' + +on: [pull_request] + +jobs: + build-spec: + runs-on: ubuntu-20.04 + steps: + - name: 'Checkout' + uses: actions/checkout@v3 + - name: 'Build Kotlin spec in its Docker container' + uses: ./.github/actions/build-spec-in-docker diff --git a/.github/workflows/build-spec-on-pr.yml b/.github/workflows/build-spec-on-pr.yml new file mode 100644 index 000000000..fea4300a6 --- /dev/null +++ b/.github/workflows/build-spec-on-pr.yml @@ -0,0 +1,44 @@ +name: Build Kotlin spec on PRs + +on: [pull_request] + +jobs: + build-spec: + runs-on: ubuntu-20.04 + steps: + - name: Setup Java 11 + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'zulu' + cache: 'gradle' + - name: Setup pandoc + env: + PANDOC_VERSION: 2.14.2 + PANDOC_DEB: pandoc-2.14.2-1-amd64.deb + run: | + curl -sLO https://github.com/jgm/pandoc/releases/download/$PANDOC_VERSION/$PANDOC_DEB + sudo dpkg -i $PANDOC_DEB + rm $PANDOC_DEB + - name: Setup Kotlin spec dependencies + run: | + sudo apt-get update + sudo apt-get install -y gpp + sudo apt-get install -y librsvg2-bin + sudo apt-get install -y npm + curl -sL https://deb.nodesource.com/setup_18.x | bash - + sudo apt-get install -y nodejs + sudo apt-get install -y --no-install-recommends texlive-latex-extra + sudo apt-get install -y --no-install-recommends texlive-fonts-extra + sudo apt-get install -y --no-install-recommends texlive-bibtex-extra + sudo apt-get install -y --no-install-recommends texlive-science + sudo apt-get install -y --no-install-recommends fontconfig + sudo apt-get install -y --no-install-recommends lmodern + - name: Checkout repo + uses: actions/checkout@v3 + - name: Build Kotlin spec + run: | + ./gradlew buildPdf buildWeb + - name: Smoke test Kotlin grammar + run: | + ./gradlew :grammar:jar diff --git a/docker/Dockerfile b/docker/Dockerfile index 48dcf05fa..e6c38e61e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -26,3 +26,6 @@ RUN tlmgr install --no-persistent-downloads cancel RUN tlmgr install --no-persistent-downloads todonotes RUN tlmgr install --no-persistent-downloads titlesec RUN tlmgr install --no-persistent-downloads newunicodechar + +# add build-spec.sh file for GitHub Actions +COPY build-spec.sh /build-spec.sh diff --git a/docker/build-spec.sh b/docker/build-spec.sh new file mode 100644 index 000000000..098fed1c1 --- /dev/null +++ b/docker/build-spec.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +cd /github/workspace + +./gradlew buildWeb buildPdf + +./gradlew :grammar:jar