This repository has been archived by the owner on Oct 22, 2023. It is now read-only.
Update dependency com.pinterest:ktlint to v0.51.0-FINAL #5338
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: CI | |
on: | |
push: | |
branches: | |
- '**' | |
- '!renovate/**' | |
tags: | |
- '**' | |
pull_request: | |
# Cancel PR builds if the PR is updated. | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} | |
cancel-in-progress: true | |
env: | |
GRADLE_OPTS: "-Dorg.gradle.internal.launcher.welcomeMessageEnabled=false" | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
validate-gradle-wrapper: | |
name: "Validate Gradle wrapper" | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4.1.1 | |
with: | |
fetch-depth: 0 | |
- name: Validate Gradle wrapper | |
uses: gradle/wrapper-validation-action@v1.1.0 | |
build-and-test-library: | |
needs: | |
- validate-gradle-wrapper | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: Linux, latest Docker | |
os: ubuntu-20.04 | |
dockerVersion: latest | |
- name: Linux, Docker 19.03.10 | |
os: ubuntu-20.04 | |
dockerVersion: 5:19.03.10~3-0~ubuntu-focal | |
- name: Linux, latest Docker, TLS over TCP connection | |
os: ubuntu-20.04 | |
dockerVersion: latest | |
useTLS: true | |
- name: Windows, default Docker | |
os: windows-2019 | |
containerOperatingSystem: windows | |
dockerVersion: useRunnerDefault | |
- name: macOS, no Docker | |
os: macos-11 | |
disableDockerDaemonTests: 1 | |
dockerVersion: useRunnerDefault | |
permissions: | |
packages: read | |
name: "Build and test (${{ matrix.name }})" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4.1.1 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.13.0 | |
with: | |
java-version: 17.0.2+8 | |
distribution: temurin | |
- name: Cache Golang packages | |
id: cache-golang-packages | |
uses: actions/cache@v3.3.2 | |
with: | |
path: ~/go | |
key: go-packages-${{ runner.os }}-${{ hashFiles('golang-wrapper/src/go.*') }} | |
- name: Cache Kotlin/Native dependencies | |
id: cache-kotlin-native | |
uses: actions/cache@v3.3.2 | |
with: | |
path: ~/.konan | |
key: kotlin-native-${{ runner.os }}-${{ hashFiles('gradle/libs.versions.toml') }} | |
- name: Cache tools | |
id: cache-tools | |
uses: actions/cache@v3.3.2 | |
with: | |
path: golang-wrapper/build/tools | |
key: tools-${{ runner.os }}-${{ hashFiles('**/*.gradle.kts', 'buildSrc/src/**/*.kt') }} | |
- name: Install Docker | |
run: ./.github/workflows/ci/install_docker.sh ${{ matrix.dockerVersion }} | |
if: matrix.dockerVersion != 'useRunnerDefault' | |
- name: Configure Docker to use TLS over TCP | |
run: ./.github/workflows/ci/configure_docker_tls.sh | |
if: matrix.useTLS == true | |
# This step is required so that we can test pulling images from a registry that requires authentication. | |
- name: Log in to GitHub Container Registry | |
run: echo "$GITHUB_TOKEN" | docker login ghcr.io -u ${{ github.actor }} --password-stdin | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
if: matrix.disableDockerDaemonTests != 1 | |
- name: Build, test and package | |
uses: burrunan/gradle-cache-action@v1.19 | |
with: | |
# client:allTests is disabled until https://github.com/gradle/gradle/issues/21547 is fixed | |
arguments: client:check client:jvmJar --scan --exclude-task client:allTests | |
env: | |
DISABLE_DOCKER_DAEMON_TESTS: ${{ matrix.disableDockerDaemonTests }} | |
DOCKER_CONTAINER_OPERATING_SYSTEM: ${{ matrix.containerOperatingSystem }} | |
DOCKER_CONNECTION_OVER_TCP: ${{ matrix.useTLS }} | |
RUN_TARGETS_FOR_OTHER_HOSTS: false | |
TEST_ENVIRONMENT_DESCRIPTION: ${{ matrix.name }} | |
- name: Check for outdated generated code | |
run: if [ ! -z "$(git status --porcelain)" ]; then echo "Generated code changed. Do you need to run './gradlew generate'?">/dev/stderr; echo; git status --porcelain; echo; git diff; exit 1; fi | |
check-samples: | |
name: "Check sample applications" | |
needs: | |
- validate-gradle-wrapper | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4.1.1 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.13.0 | |
with: | |
java-version: 17.0.2+8 | |
distribution: temurin | |
- name: Cache Golang packages | |
id: cache-golang-packages | |
uses: actions/cache@v3.3.2 | |
with: | |
path: ~/go | |
key: go-packages-${{ runner.os }}-${{ hashFiles('golang-wrapper/src/go.*') }} | |
- name: Cache Kotlin/Native dependencies | |
id: cache-kotlin-native | |
uses: actions/cache@v3.3.2 | |
with: | |
path: ~/.konan | |
key: kotlin-native-${{ runner.os }}-${{ hashFiles('gradle/libs.versions.toml') }} | |
- name: Cache tools | |
id: cache-tools | |
uses: actions/cache@v3.3.2 | |
with: | |
path: golang-wrapper/build/tools | |
key: tools-${{ runner.os }}-${{ hashFiles('**/*.gradle.kts', 'buildSrc/src/**/*.kt') }} | |
- name: Build, test and package | |
uses: burrunan/gradle-cache-action@v1.19 | |
with: | |
arguments: samples:check | |
check-wrapper: | |
name: "Lint wrapper library" | |
needs: | |
- validate-gradle-wrapper | |
runs-on: macos-13 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4.1.1 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.13.0 | |
with: | |
java-version: 17.0.2+8 | |
distribution: temurin | |
- name: Cache Golang packages | |
id: cache-golang-packages | |
uses: actions/cache@v3.3.2 | |
with: | |
path: ~/go | |
key: go-lint-packages-${{ runner.os }}-${{ hashFiles('golang-wrapper/src/go.*') }} | |
- name: Cache Kotlin/Native dependencies | |
id: cache-kotlin-native | |
uses: actions/cache@v3.3.2 | |
with: | |
path: ~/.konan | |
key: kotlin-native-lint-${{ runner.os }}-${{ hashFiles('gradle/libs.versions.toml') }} | |
- name: Cache tools | |
id: cache-tools | |
uses: actions/cache@v3.3.2 | |
with: | |
path: golang-wrapper/build/tools | |
key: tools-${{ runner.os }}-${{ hashFiles('**/*.gradle.kts', 'buildSrc/src/**/*.kt') }} | |
- name: Run linting | |
uses: burrunan/gradle-cache-action@v1.19 | |
with: | |
arguments: golang-wrapper:check --scan | |
check-build-logic: | |
name: "Lint, test and check build logic" | |
needs: | |
- validate-gradle-wrapper | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4.1.1 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.13.0 | |
with: | |
java-version: 17.0.2+8 | |
distribution: temurin | |
- name: Run linting, tests and other checks | |
uses: burrunan/gradle-cache-action@v1.19 | |
with: | |
arguments: :build-logic:check --scan | |
build-docs: | |
name: "Build documentation" | |
needs: | |
- validate-gradle-wrapper | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4.1.1 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.13.0 | |
with: | |
java-version: 17.0.2+8 | |
distribution: temurin | |
- name: Cache Golang packages | |
id: cache-golang-packages | |
uses: actions/cache@v3.3.2 | |
with: | |
path: ~/go | |
key: go-packages-${{ runner.os }}-${{ hashFiles('golang-wrapper/src/go.*') }} | |
- name: Cache Kotlin/Native dependencies | |
id: cache-kotlin-native | |
uses: actions/cache@v3.3.2 | |
with: | |
path: ~/.konan | |
key: kotlin-native-${{ runner.os }}-${{ hashFiles('gradle/libs.versions.toml') }} | |
- name: Cache tools | |
id: cache-tools | |
uses: actions/cache@v3.3.2 | |
with: | |
path: golang-wrapper/build/tools | |
key: tools-${{ runner.os }}-${{ hashFiles('**/*.gradle.kts', 'buildSrc/src/**/*.kt') }} | |
- name: Build documentation | |
uses: burrunan/gradle-cache-action@v1.19 | |
with: | |
arguments: dokkaHtml --scan | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v2.0.0 | |
with: | |
path: client/build/dokka/html | |
publish-libs: | |
name: "Publish libraries" | |
runs-on: macos-13 | |
if: github.repository == 'batect/docker-client' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && github.event_name == 'push' | |
needs: | |
- validate-gradle-wrapper | |
- build-and-test-library | |
- check-wrapper | |
- check-build-logic | |
- check-samples | |
- build-docs | |
env: | |
SONATYPE_USERNAME: batect-docker-client-github-actions | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4.1.1 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.13.0 | |
with: | |
java-version: 17.0.2+8 | |
distribution: temurin | |
- name: Cache Golang packages | |
id: cache-golang-packages | |
uses: actions/cache@v3.3.2 | |
with: | |
path: ~/go | |
key: go-packages-${{ runner.os }}-${{ hashFiles('golang-wrapper/src/go.*') }} | |
- name: Cache Kotlin/Native dependencies | |
id: cache-kotlin-native | |
uses: actions/cache@v3.3.2 | |
with: | |
path: ~/.konan | |
key: kotlin-native-${{ runner.os }}-${{ hashFiles('gradle/libs.versions.toml') }} | |
- name: Cache tools | |
id: cache-tools | |
uses: actions/cache@v3.3.2 | |
with: | |
path: golang-wrapper/build/tools | |
key: tools-${{ runner.os }}-${{ hashFiles('**/*.gradle.kts', 'buildSrc/src/**/*.kt') }} | |
- name: Check JAR contains native libraries for all operating systems | |
uses: burrunan/gradle-cache-action@v1.19 | |
with: | |
arguments: client:checkJarContents --scan | |
- name: Publish snapshot | |
uses: burrunan/gradle-cache-action@v1.19 | |
with: | |
arguments: publishSnapshot --scan | |
env: | |
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ env.SONATYPE_USERNAME }} | |
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }} | |
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_KEY }} | |
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_KEY_PASSPHRASE }} | |
if: github.repository == 'batect/docker-client' && github.ref == 'refs/heads/main' && github.event_name == 'push' | |
- name: Publish release | |
uses: burrunan/gradle-cache-action@v1.19 | |
with: | |
arguments: publishRelease --scan | |
env: | |
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ env.SONATYPE_USERNAME }} | |
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }} | |
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_KEY }} | |
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_KEY_PASSPHRASE }} | |
if: github.repository == 'batect/docker-client' && startsWith(github.ref, 'refs/tags/') && github.event_name == 'push' | |
publish-docs: | |
name: "Publish documentation" | |
runs-on: ubuntu-22.04 | |
if: github.repository == 'batect/docker-client' && startsWith(github.ref, 'refs/tags/') && github.event_name == 'push' | |
needs: | |
- validate-gradle-wrapper | |
- build-and-test-library | |
- check-wrapper | |
- check-build-logic | |
- check-samples | |
- build-docs | |
permissions: | |
id-token: write | |
pages: write | |
environment: | |
name: github-pages | |
url: ${{ steps.publish.outputs.page_url }} | |
steps: | |
- name: Publish documentation to GitHub Pages | |
id: publish | |
uses: actions/deploy-pages@v2.0.4 |