This repository has been archived by the owner on Oct 22, 2023. It is now read-only.
Merge pull request #1545 from batect/renovate/nginx-1.x #4670
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" | |
permissions: | |
contents: read | |
jobs: | |
validate-gradle-wrapper: | |
name: "Validate Gradle wrapper" | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3.5.3 | |
with: | |
fetch-depth: 0 | |
- name: Validate Gradle wrapper | |
uses: gradle/wrapper-validation-action@v1.0.6 | |
build-windows: | |
name: "Build (Windows)" | |
runs-on: windows-2022 | |
env: | |
# This is required because WSL installs a 'bash.exe' in C:\Windows\System32 that always takes precedence over anything in PATH | |
# See https://github.com/actions/virtual-environments/pull/1081#issuecomment-661220718. | |
BASH_PATH: C:\Program Files\Git\bin\bash.exe | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3.5.3 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.11.0 | |
with: | |
java-version: 11 # We must use Java 15 or earlier until https://youtrack.jetbrains.com/issue/KT-47039 is fixed. | |
distribution: adopt | |
- name: Cache packages | |
id: cache-packages | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/caches | |
key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }} | |
restore-keys: gradle-packages-${{ runner.os }} | |
- name: Build and test | |
run: ./gradlew -DgenerateCoverage=true app:check jacocoTestReport | |
- name: Stop Gradle daemon | |
run: ./gradlew --stop | |
- name: Clean up dependencies before caching | |
if: steps.cache-packages.outputs.cache-hit != 'true' | |
run: | | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/modules-2/modules-2.lock | |
Remove-Item -ErrorAction SilentlyContinue -Recurse ~/.gradle/caches/*/plugin-resolution/ | |
Remove-Item -ErrorAction SilentlyContinue -Recurse ~/.gradle/caches/*/scripts/ | |
Remove-Item -ErrorAction SilentlyContinue -Recurse ~/.gradle/caches/*/scripts-remapped/ | |
Remove-Item -ErrorAction SilentlyContinue -Recurse ~/.gradle/caches/*/fileHashes/ | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/*/fileContent/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/*/javaCompile/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/*/executionHistory/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/*/generated-gradle-jars/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/jars-*/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/journal-1/file-access.bin | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/journal-1/*.lock | |
wrapper-test-windows: | |
name: "Run wrapper tests (Windows)" | |
runs-on: windows-2022 | |
env: | |
# This is required because WSL installs a 'bash.exe' in C:\Windows\System32 that always takes precedence over anything in PATH | |
# See https://github.com/actions/virtual-environments/pull/1081#issuecomment-661220718. | |
BASH_PATH: C:\Program Files\Git\bin\bash.exe | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3.5.3 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.11.0 | |
with: | |
java-version: 11 # We must use Java 15 or earlier until https://youtrack.jetbrains.com/issue/KT-47039 is fixed. | |
distribution: adopt | |
- name: Cache packages | |
id: cache-packages | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/caches | |
key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }}-wrappertests | |
restore-keys: gradle-packages-${{ runner.os }} | |
- name: Run wrapper tests | |
run: ./gradlew wrapper:windows:check | |
- name: Stop Gradle daemon | |
run: ./gradlew --stop | |
- name: Clean up dependencies before caching | |
if: steps.cache-packages.outputs.cache-hit != 'true' | |
run: | | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/modules-2/modules-2.lock | |
Remove-Item -ErrorAction SilentlyContinue -Recurse ~/.gradle/caches/*/plugin-resolution/ | |
Remove-Item -ErrorAction SilentlyContinue -Recurse ~/.gradle/caches/*/scripts/ | |
Remove-Item -ErrorAction SilentlyContinue -Recurse ~/.gradle/caches/*/scripts-remapped/ | |
Remove-Item -ErrorAction SilentlyContinue -Recurse ~/.gradle/caches/*/fileHashes/ | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/*/fileContent/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/*/javaCompile/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/*/executionHistory/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/*/generated-gradle-jars/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/jars-*/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/journal-1/file-access.bin | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/journal-1/*.lock | |
journey-test-windows: | |
name: "Run journey tests (Windows)" | |
runs-on: windows-2022 | |
env: | |
# This is required because WSL installs a 'bash.exe' in C:\Windows\System32 that always takes precedence over anything in PATH | |
# See https://github.com/actions/virtual-environments/pull/1081#issuecomment-661220718. | |
BASH_PATH: C:\Program Files\Git\bin\bash.exe | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3.5.3 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.11.0 | |
with: | |
java-version: 11 # We must use Java 15 or earlier until https://youtrack.jetbrains.com/issue/KT-47039 is fixed. | |
distribution: adopt | |
- name: Cache packages | |
id: cache-packages | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/caches | |
key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }}-journeytests | |
restore-keys: gradle-packages-${{ runner.os }} | |
- name: Print Docker version information | |
run: docker version | |
- name: Run journey tests (Windows containers) | |
run: ./gradlew journeyTest -PwindowsContainers | |
- name: Stop Gradle daemon | |
run: ./gradlew --stop | |
- name: Clean up dependencies before caching | |
if: steps.cache-packages.outputs.cache-hit != 'true' | |
run: | | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/modules-2/modules-2.lock | |
Remove-Item -ErrorAction SilentlyContinue -Recurse ~/.gradle/caches/*/plugin-resolution/ | |
Remove-Item -ErrorAction SilentlyContinue -Recurse ~/.gradle/caches/*/scripts/ | |
Remove-Item -ErrorAction SilentlyContinue -Recurse ~/.gradle/caches/*/scripts-remapped/ | |
Remove-Item -ErrorAction SilentlyContinue -Recurse ~/.gradle/caches/*/fileHashes/ | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/*/fileContent/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/*/javaCompile/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/*/executionHistory/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/*/generated-gradle-jars/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/jars-*/*.lock | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/journal-1/file-access.bin | |
Remove-Item -ErrorAction SilentlyContinue ~/.gradle/caches/journal-1/*.lock | |
build-linux: | |
name: "Build (Linux)" | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3.5.3 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.11.0 | |
with: | |
java-version: 11 # We must use Java 15 or earlier until https://youtrack.jetbrains.com/issue/KT-47039 is fixed. | |
distribution: adopt | |
- name: Cache Gradle wrapper | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/wrapper | |
key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }} | |
restore-keys: gradle-wrapper-${{ runner.os }} | |
- name: Cache packages | |
id: cache-packages | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/caches | |
key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }} | |
restore-keys: gradle-packages-${{ runner.os }} | |
- name: Install tools used by unit tests | |
run: sudo apt-get install attr --no-install-recommends -y | |
- name: Build and test | |
run: unset JAVA_TOOL_OPTIONS && ./gradlew -DgenerateCoverage=true check libs:git-client:integrationTest jacocoTestReport spotlessCheck -x wrapper:unix:check -x wrapper:windows:check | |
- name: Assemble release | |
run: unset JAVA_TOOL_OPTIONS && ./gradlew assembleRelease | |
- name: Stop Gradle daemon | |
run: ./gradlew --stop | |
- name: Clean up dependencies before caching | |
if: steps.cache-packages.outputs.cache-hit != 'true' | |
run: | | |
rm -f $HOME/.gradle/caches/modules-2/modules-2.lock | |
rm -fr $HOME/.gradle/caches/*/plugin-resolution/ | |
rm -fr $HOME/.gradle/caches/*/scripts/ | |
rm -fr $HOME/.gradle/caches/*/scripts-remapped/ | |
rm -fr $HOME/.gradle/caches/*/fileHashes/ | |
rm -f $HOME/.gradle/caches/*/fileContent/*.lock | |
rm -f $HOME/.gradle/caches/*/javaCompile/*.lock | |
rm -f $HOME/.gradle/caches/*/executionHistory/*.lock | |
rm -f $HOME/.gradle/caches/*/generated-gradle-jars/*.lock | |
rm -f $HOME/.gradle/caches/jars-3/*.lock | |
rm -f $HOME/.gradle/caches/jars-8/*.lock | |
rm -f $HOME/.gradle/caches/transforms-1/transforms-1.lock | |
rm -f $HOME/.gradle/caches/journal-1/file-access.bin | |
rm -f $HOME/.gradle/caches/journal-1/*.lock | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3.1.2 | |
with: | |
name: Binaries | |
path: build/release | |
if-no-files-found: error | |
wrapper-test-linux: | |
name: "Run wrapper tests (Linux)" | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3.5.3 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.11.0 | |
with: | |
java-version: 11 # We must use Java 15 or earlier until https://youtrack.jetbrains.com/issue/KT-47039 is fixed. | |
distribution: adopt | |
- name: Cache Gradle wrapper | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/wrapper | |
key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }} | |
restore-keys: gradle-wrapper-${{ runner.os }} | |
- name: Cache packages | |
id: cache-packages | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/caches | |
key: gradle-wrapper-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }} | |
restore-keys: gradle-wrapper-packages-${{ runner.os }} | |
- name: Run tests | |
run: unset JAVA_TOOL_OPTIONS && ./gradlew wrapper:unix:check | |
completion-test-linux: | |
name: "Run shell tab completion tests (Linux)" | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3.5.3 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.11.0 | |
with: | |
java-version: 11 # We must use Java 15 or earlier until https://youtrack.jetbrains.com/issue/KT-47039 is fixed. | |
distribution: adopt | |
- name: Cache Gradle wrapper | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/wrapper | |
key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }} | |
restore-keys: gradle-wrapper-${{ runner.os }} | |
- name: Cache packages | |
id: cache-packages | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/caches | |
key: gradle-wrapper-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }} | |
restore-keys: gradle-wrapper-packages-${{ runner.os }} | |
- name: Run tests | |
run: unset JAVA_TOOL_OPTIONS && ./gradlew completionTest | |
journey-test-linux: | |
name: "Run journey tests (Linux, Docker ${{ matrix.docker_version }} on ${{ matrix.run_on }}, BuildKit enabled: ${{ matrix.enable_buildkit }})" | |
runs-on: ${{ matrix.run_on }} | |
strategy: | |
matrix: | |
include: | |
- docker_version: latest | |
enable_buildkit: false | |
run_on: ubuntu-22.04 | |
- docker_version: latest | |
enable_buildkit: true | |
run_on: ubuntu-22.04 | |
- docker_version: 5:19.03.14~3-0~ubuntu-focal # 20.04 introduced some breaking changes, this is the last version before 20.04 | |
enable_buildkit: false | |
run_on: ubuntu-20.04 | |
- docker_version: 5:19.03.14~3-0~ubuntu-focal # 20.04 introduced some breaking changes, this is the last version before 20.04 | |
enable_buildkit: true | |
run_on: ubuntu-20.04 | |
fail-fast: false | |
env: | |
DOCKER_BUILDKIT: ${{ matrix.enable_buildkit }} | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3.5.3 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.11.0 | |
with: | |
java-version: 11 # We must use Java 15 or earlier until https://youtrack.jetbrains.com/issue/KT-47039 is fixed. | |
distribution: adopt | |
- name: Cache Gradle wrapper | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/wrapper | |
key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }} | |
restore-keys: gradle-wrapper-${{ runner.os }} | |
- name: Cache packages | |
id: cache-packages | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/caches | |
key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }}-journeytests | |
restore-keys: gradle-packages-${{ runner.os }} | |
- name: Install Docker | |
run: ./ci/install_docker.sh ${{ matrix.docker_version }} | |
- name: Run journey tests | |
run: unset JAVA_TOOL_OPTIONS && ./gradlew journeyTest | |
build-mac: | |
name: "Build (macOS)" | |
runs-on: macos-12 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3.5.3 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3.11.0 | |
with: | |
java-version: 11 # We must use Java 15 or earlier until https://youtrack.jetbrains.com/issue/KT-47039 is fixed. | |
distribution: adopt | |
- name: Cache Gradle wrapper | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/wrapper | |
key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }} | |
restore-keys: gradle-wrapper-${{ runner.os }} | |
- name: Cache packages | |
id: cache-packages | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/caches | |
key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }} | |
restore-keys: gradle-packages-${{ runner.os }} | |
- name: Build and test | |
run: unset JAVA_TOOL_OPTIONS && ./gradlew -DgenerateCoverage=true check libs:git-client:integrationTest jacocoTestReport -x wrapper:unix:check -x wrapper:windows:check | |
- name: Stop Gradle daemon | |
run: ./gradlew --stop | |
- name: Clean up dependencies before caching | |
if: steps.cache-packages.outputs.cache-hit != 'true' | |
run: | | |
rm -f $HOME/.gradle/caches/modules-2/modules-2.lock | |
rm -fr $HOME/.gradle/caches/*/plugin-resolution/ | |
rm -fr $HOME/.gradle/caches/*/scripts/ | |
rm -fr $HOME/.gradle/caches/*/scripts-remapped/ | |
rm -fr $HOME/.gradle/caches/*/fileHashes/ | |
rm -f $HOME/.gradle/caches/*/fileContent/*.lock | |
rm -f $HOME/.gradle/caches/*/javaCompile/*.lock | |
rm -f $HOME/.gradle/caches/*/executionHistory/*.lock | |
rm -f $HOME/.gradle/caches/*/generated-gradle-jars/*.lock | |
rm -f $HOME/.gradle/caches/jars-3/*.lock | |
rm -f $HOME/.gradle/caches/jars-8/*.lock | |
rm -f $HOME/.gradle/caches/transforms-1/transforms-1.lock | |
rm -f $HOME/.gradle/caches/journal-1/file-access.bin | |
rm -f $HOME/.gradle/caches/journal-1/*.lock | |
publish-release: | |
name: "Publish release" | |
needs: | |
- validate-gradle-wrapper | |
- build-windows | |
- build-linux | |
- build-mac | |
- wrapper-test-linux | |
- wrapper-test-windows | |
- completion-test-linux | |
- journey-test-linux | |
- journey-test-windows | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && github.repository == 'batect/batect' | |
runs-on: ubuntu-22.04 | |
permissions: | |
contents: write # Required to be able to publish releases, see https://docs.github.com/en/rest/reference/permissions-required-for-github-apps#permission-on-contents | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3.5.3 | |
with: | |
fetch-depth: 0 | |
- name: Fix tag reference (workaround for https://github.com/actions/checkout/issues/290) | |
run: git fetch -f origin ${{ github.ref }}:${{ github.ref }} | |
- name: Set up JDK | |
uses: actions/setup-java@v3.11.0 | |
with: | |
java-version: 11 # We must use Java 15 or earlier until https://youtrack.jetbrains.com/issue/KT-47039 is fixed. | |
distribution: adopt | |
- name: Cache Gradle wrapper | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/wrapper | |
key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }} | |
restore-keys: gradle-wrapper-${{ runner.os }} | |
- name: Cache packages | |
id: cache-packages | |
uses: actions/cache@v3.3.1 | |
with: | |
path: ~/.gradle/caches | |
key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }} | |
restore-keys: gradle-packages-${{ runner.os }} | |
- name: Download binaries | |
uses: actions/download-artifact@v3.0.2 | |
with: | |
name: Binaries | |
path: build/release | |
- name: Wait for AppVeyor build to complete | |
run: ./ci/wait_for_appveyor.sh | |
- name: Validate release | |
run: ./gradlew validateRelease | |
- name: Create GitHub release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: build/release/* | |
fail_on_unmatched_files: true | |
draft: true # Update draft release with matching tag, if there is one. | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Upload update information and config schema to bucket | |
run: ./gradlew uploadUpdateInfoFile uploadConfigSchema | |
env: | |
GCP_SERVICE_ACCOUNT_KEY: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }} |