Set javac --release version back to 8 for now #416
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
jobs: | |
prep: | |
name: Prepare the build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Update the 'latest' tag | |
if: github.ref == 'refs/heads/main' | |
run: | | |
git config user.name github-actions | |
git config user.email [email protected] | |
git push origin :refs/tags/latest || true | |
git tag -m latest -fa latest || true | |
git push origin main --tags | |
build: | |
name: Build on ${{ matrix.os }} with Java ${{ matrix.java }} | |
needs: prep | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
java: [22, 21, 17, 11.0.23] | |
exclude: | |
- os: macos-latest | |
java: 11.0.23 | |
- os: windows-latest | |
java: 11.0.3 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Java JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: zulu | |
java-version: ${{ matrix.java }} | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Update submodules | |
run: python checker.py update | |
- name: Install dependencies | |
run: python checker.py dldeps | |
- name: Build | |
run: | | |
python checker.py build | |
python checker.py jar | |
python checker.py image | |
python checker.py war | |
- name: Test | |
shell: bash | |
env: | |
TOMCAT_VERSION: 8.5.29 | |
run: | | |
java -jar build/dist/vnu.jar build/dist/index.html | |
java -jar build/dist/vnu.jar site/nu-about.html | |
jar xf build/dist/vnu.jar && javap -verbose nu/validator/client/SimpleCommandLineValidator.class | grep "major version: 52" | |
curl -O https://archive.apache.org/dist/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.zip | |
unzip apache-tomcat-$TOMCAT_VERSION.zip | |
chmod a+x apache-tomcat-$TOMCAT_VERSION/bin/*.sh | |
jar xf build/dist-war/vnu.war && javap -verbose WEB-INF/classes/nu/validator/servlet/VerifierServlet.class | grep "major version: 52" | |
apache-tomcat-$TOMCAT_VERSION/bin/catalina.sh start | |
cp build/dist-war/vnu.war apache-tomcat-$TOMCAT_VERSION/webapps/ | |
sleep 15; tail apache-tomcat-$TOMCAT_VERSION/logs/catalina.out || true | |
curl -sS 'http://localhost:8080/vnu/?out=gnu&doc=data:text/html;charset=utf-8,%3C%21doctype%20html%3E%3Cmeta%20charset%3Dutf-8%3E%3Ctitle%3ETest%3C%2Ftitle%3E' > RESULTS | |
test -z "$(if [ -t RESULTS ]; then cat RESULTS | grep -v '^$'; fi)" | |
if [ $? != 0 ]; then cat RESULTS; fi | |
python ./checker.py check | |
python ./checker.py test | |
- name: Import GPG signing key | |
if: matrix.java == 17 && github.ref == 'refs/heads/main' | |
uses: crazy-max/ghaction-import-gpg@v5 | |
with: | |
gpg_private_key: ${{ secrets.GPG_SIGNING_KEY }} | |
passphrase: ${{ secrets.GPG_SIGNING_KEY_PASSPHRASE }} | |
git_user_signingkey: true | |
git_commit_gpgsign: true | |
- name: Sign release artifacts | |
if: matrix.java == 17 && github.ref == 'refs/heads/main' | |
shell: bash | |
run: | | |
for file in build/dist/{*.zip,*.zip.md5,*.zip.sha1}; do gpg --yes -ab --sign $file; done || true | |
for file in build/dist/*.jar*; do gpg --yes -ab --sign $file; done || true | |
for file in build/dist-war/*.war*; do gpg --yes -ab --sign $file; done || true | |
- name: Release new binary runtime image | |
if: matrix.java == 17 && github.ref == 'refs/heads/main' | |
uses: ncipollo/release-action@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
commit: ${{ github.sha }} | |
allowUpdates: true | |
artifacts: build/dist/*.zip* | |
body: ${{ github.sha }} — ${{ github.event.head_commit.message }} | |
omitName: true | |
prerelease: true | |
tag: latest | |
- name: Release new jar and war | |
if: matrix.os == 'ubuntu-latest' && matrix.java == 17 && github.ref == 'refs/heads/main' | |
uses: ncipollo/release-action@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
artifacts: build/dist/*.jar*,build/dist-war/*.war* | |
omitBodyDuringUpdate: true | |
omitName: true | |
prerelease: true | |
tag: latest |