Skip to content
This repository has been archived by the owner on Oct 22, 2023. It is now read-only.

Update actions/checkout action to v4.1.1 #5322

Update actions/checkout action to v4.1.1

Update actions/checkout action to v4.1.1 #5322

Workflow file for this run

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