Skip to content

Github Actions Improvements #170

Github Actions Improvements

Github Actions Improvements #170

# This workflow will be triggered if there will be changes to
# aws-lambda-java-runtime-interface-client package or its dependencies (core, serialization),
# and it builds the package.
name: PR to runtime-interface-client
on:
workflow_dispatch:
pull_request:
branches: [ '*' ]
paths:
- 'aws-lambda-java-runtime-interface-client/**'
- 'aws-lambda-java-core/**'
- 'aws-lambda-java-serialization/**'
- '.github/workflows/runtime-interface-client_*.yml'
permissions:
contents: read
jobs:
smoke-test:
runs-on: ubuntu-latest
strategy:
matrix:
java-version: [8, 11, 17, 21]
steps:
- uses: actions/checkout@v5
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java-version }}
distribution: corretto
cache: maven
- name: Build and install core dependency locally
working-directory: ./aws-lambda-java-core
run: mvn clean install
- name: Build and install serialization dependency locally
working-directory: ./aws-lambda-java-serialization
run: mvn clean install
- name: Runtime Interface Client smoke tests - Run 'pr' target
working-directory: ./aws-lambda-java-runtime-interface-client
run: make pr
env:
IS_JAVA_8: ${{ matrix.java-version == 8 }}
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up JDK 1.8
uses: actions/setup-java@v4
with:
java-version: 8
distribution: corretto
cache: maven
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
install: true
- name: Available buildx platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Build and install core dependency locally
working-directory: ./aws-lambda-java-core
run: mvn clean install
- name: Build and install serialization dependency locally
working-directory: ./aws-lambda-java-serialization
run: mvn clean install
- name: Test Runtime Interface Client xplatform build - Run 'build' target
working-directory: ./aws-lambda-java-runtime-interface-client
run: make build
env:
IS_JAVA_8: true
- name: Save the built jar
uses: actions/upload-artifact@v4
with:
name: aws-lambda-java-runtime-interface-client
path: ./aws-lambda-java-runtime-interface-client/target/aws-lambda-java-runtime-interface-client-*.jar
- name: Upload coverage to Codecov
if: env.CODECOV_TOKEN != null
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}