1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- name: Publish Servlet images for smoke tests
- on:
- push:
- paths:
- - "smoke-tests/images/servlet/**"
- - ".github/workflows/publish-smoke-test-servlet-images.yml"
- branches:
- - main
- workflow_dispatch:
- jobs:
- prepare:
- runs-on: ubuntu-latest
- outputs:
- tag: ${{ steps.set-tag.outputs.TAG }}
- steps:
- - id: set-tag
- name: Set tag
- run: echo "TAG=$(date '+%Y%m%d').$GITHUB_RUN_ID" >> $GITHUB_OUTPUT
- publish:
- needs: prepare
- runs-on: ${{ matrix.os }}
- defaults:
- run:
- shell: bash # this is needed for TAG construction below on Windows
- strategy:
- matrix:
- os:
- - windows-latest
- - ubuntu-latest
- smoke-test-server:
- - jetty
- - liberty
- - payara
- - tomcat
- - tomee
- - websphere
- - wildfly
- exclude:
- - os: windows-latest
- smoke-test-server: websphere
- fail-fast: false
- steps:
- - name: Support long paths
- run: git config --system core.longpaths true
- if: matrix.os == 'windows-latest'
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- - name: Free disk space
- if: matrix.os != 'windows-latest'
- run: .github/scripts/gha-free-disk-space.sh
- - name: Set up JDK for running Gradle
- uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
- with:
- distribution: temurin
- java-version-file: .java-version
- - name: Login to GitHub package registry
- uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # v3.2.0
- with:
- registry: ghcr.io
- username: ${{ github.repository_owner }}
- password: ${{ secrets.GITHUB_TOKEN }}
- - name: Set up Gradle cache
- uses: gradle/actions/setup-gradle@d9336dac04dea2507a617466bc058a3def92b18b # v3.4.0
- with:
- # only push cache for one matrix option per OS since github action cache space is limited
- cache-read-only: ${{ matrix.smoke-test-suite != 'tomcat' }}
- - name: Build Linux docker images
- if: matrix.os != 'windows-latest'
- run: ./gradlew :smoke-tests:images:servlet:buildLinuxTestImages pushMatrix -PextraTag=${{ needs.prepare.outputs.tag }} -PsmokeTestServer=${{ matrix.smoke-test-server }}
- - name: Build Windows docker images
- if: matrix.os == 'windows-latest'
- run: ./gradlew :smoke-tests:images:servlet:buildWindowsTestImages pushMatrix -PextraTag=${{ needs.prepare.outputs.tag }} -PsmokeTestServer=${{ matrix.smoke-test-server }}
- workflow-notification:
- needs:
- - publish
- if: always()
- uses: ./.github/workflows/reusable-workflow-notification.yml
- with:
- success: ${{ needs.publish.result == 'success' }}
|