use swiftlang CI workflow

add license check

add readme build badge
This commit is contained in:
Sébastien Stormacq
2024-10-15 16:49:34 +02:00
parent 576602bcef
commit c29e1fd011
16 changed files with 133 additions and 555 deletions
+44 -21
View File
@@ -1,32 +1,55 @@
# This workflow will build a Swift project on macOS and Linux
# This workflow will build a Swift project on macOS and Linux
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-swift
name: swift-openapi-lambda-build
on:
push:
branches: [ "main" ]
branches: ["main"]
pull_request:
types: [opened, reopened, synchronize]
jobs:
build-macos:
env:
# https://github.com/actions/runner-images/tree/main/images/macos
DEVELOPER_DIR: /Applications/Xcode_16.app/Contents/Developer
runs-on: macos-15-arm64
# runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Build
run: swift build -v
- name: Run tests
run: swift test -v
build-linux:
soundness:
name: Soundness
uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main
with:
# do not use SwiftLang's license header check because the copyright for this project is Amazon.com + contributors
license_header_check_enabled: false
license_header_check_project_name: "Swift OpenAPI Lambda"
shell_check_enabled: false
python_lint_check_enabled: false
api_breakage_check_container_image: "swift:6.0-noble"
docs_check_container_image: "swift:6.0-noble"
format_check_container_image: "swiftlang/swift:nightly-6.0-jammy"
license:
name: License headers check
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Build
run: swift build -v
- name: Run tests
run: swift test -v
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Mark the workspace as safe
# https://github.com/actions/checkout/issues/766
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
- name: License headers check
env:
PROJECT_NAME: "Swift OpenAPI Lambda"
run: |
./scripts/check-license-headers.sh
unit-tests:
name: Unit tests
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
with:
linux_5_9_enabled: false
linux_5_10_enabled: true
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error"
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"
swift-6-language-mode:
name: Swift 6 Language Mode
uses: apple/swift-nio/.github/workflows/swift_6_language_mode.yml@main
+36
View File
@@ -0,0 +1,36 @@
.gitignore
.licenseignore
.swiftformatignore
.spi.yml
.swift-format
.github/*
*.md
**/*.md
CONTRIBUTORS.txt
LICENSE.txt
NOTICE.txt
Package.swift
Package@swift-*.swift
Package.resolved
**/*.docc/*
**/.gitignore
**/Package.swift
**/Package.resolved
**/docker-compose*.yaml
**/docker/*
**/.dockerignore
**/Dockerfile
**/Makefile
**/*.html
**/*-template.yml
**/*.xcworkspace/*
**/*.xcodeproj/*
**/*.xcassets/*
**/*.appiconset/*
**/ResourcePackaging/hello.txt
.mailmap
.swiftformat
*.yaml
*.yml
*.json
*.gif
-26
View File
@@ -1,26 +0,0 @@
ARG swift_version=5.9
ARG ubuntu_version=jammy
ARG base_image=swift:${swift_version}-${ubuntu_version}
FROM ${base_image}
ARG swift_version
ARG ubuntu_version
# set as UTF-8
RUN apt-get update && apt-get install -y locales locales-all
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
# tools
RUN mkdir -p $HOME/.tools
RUN echo 'export PATH="$HOME/.tools:$PATH"' >> $HOME/.profile
# swift-format
ARG swiftformat_version=509.0.0
RUN git clone --branch $swiftformat_version --depth 1 https://github.com/apple/swift-format $HOME/.tools/swift-format-source
RUN cd $HOME/.tools/swift-format-source && swift build -c release
RUN ln -s $HOME/.tools/swift-format-source/.build/release/swift-format $HOME/.tools/swift-format
# jq
RUN apt-get install -y jq
-18
View File
@@ -1,18 +0,0 @@
version: "3"
services:
runtime-setup:
image: &image swift-openapi-lambda:22.04-5.10
build:
args:
ubuntu_version: "jammy"
swift_version: "5.10"
test:
image: *image
shell:
image: *image
soundness:
image: *image
-18
View File
@@ -1,18 +0,0 @@
version: "3"
services:
runtime-setup:
image: &image swift-openapi-lambda:22.04-5.9
build:
args:
ubuntu_version: "jammy"
swift_version: "5.9"
test:
image: *image
shell:
image: *image
soundness:
image: *image
-18
View File
@@ -1,18 +0,0 @@
version: "3"
services:
runtime-setup:
image: &image swift-openapi-lambda:22.04-5.9.0
build:
args:
ubuntu_version: "jammy"
swift_version: "5.9.0"
test:
image: *image
shell:
image: *image
soundness:
image: *image
-18
View File
@@ -1,18 +0,0 @@
version: "3"
services:
runtime-setup:
image: &image swift-openapi-lambda:22.04-main
build:
args:
base_image: "swiftlang/swift:nightly-main-jammy"
test:
image: *image
shell:
image: *image
soundness:
image: *image
-47
View File
@@ -1,47 +0,0 @@
# NOTE: This file is not designed to be run independently.
#
# Instead, use it with a file for a specific OS and Swift version, for example:
#
# % docker-compose \
# -f docker/docker-compose.yaml \
# -f docker/docker-compose.2204.59.yaml \
# run test
#
version: "3"
services:
runtime-setup:
image: &image swift-openapi-lambda:default
build:
context: .
dockerfile: Dockerfile
common: &common
image: *image
depends_on: [runtime-setup]
volumes:
- ~/.ssh:/root/.ssh
- ..:/code:z
working_dir: /code
soundness:
<<: *common
command: /bin/bash -xcl "swift -version && uname -a && ./scripts/soundness.sh"
test:
<<: *common
command: /bin/bash -xcl "swift test"
shell:
<<: *common
entrypoint: /bin/bash
compatibility-test:
<<: *common
command: /bin/bash -xcl "cat /proc/cpuinfo && cat /proc/meminfo && swift test"
docc-test:
<<: *common
command: /bin/bash -xcl "swift -version && uname -a && bash ./scripts/check-for-docc-warnings.sh"
environment:
DOCC_TARGET: OpenAPILambda
-53
View File
@@ -1,53 +0,0 @@
#!/usr/bin/env bash
##===----------------------------------------------------------------------===##
##
## This source file is part of the Swift OpenAPI Lambda open source project
##
## Copyright (c) 2023 Amazon.com, Inc. or its affiliates
## and the Swift OpenAPI Lambda project authors
## Licensed under Apache License v2.0
##
## See LICENSE.txt for license information
## See CONTRIBUTORS.txt for the list of Swift OpenAPI Lambda project authors
##
## SPDX-License-Identifier: Apache-2.0
##
##===----------------------------------------------------------------------===##
##===----------------------------------------------------------------------===##
##
## This source file is part of the SwiftOpenAPIGenerator open source project
##
## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
## Licensed under Apache License v2.0
##
## See LICENSE.txt for license information
## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
##
## SPDX-License-Identifier: Apache-2.0
##
##===----------------------------------------------------------------------===##
set -euo pipefail
log() { printf -- "** %s\n" "$*" >&2; }
error() { printf -- "** ERROR: %s\n" "$*" >&2; }
fatal() { error "$@"; exit 1; }
CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)"
log "Checking for broken symlinks..."
NUM_BROKEN_SYMLINKS=0
while read -r -d '' file; do
if ! test -e "${REPO_ROOT}/${file}"; then
error "Broken symlink: ${file}"
((NUM_BROKEN_SYMLINKS++))
fi
done < <(git -C "${REPO_ROOT}" ls-files -z)
if [ "${NUM_BROKEN_SYMLINKS}" -gt 0 ]; then
fatal "❌ Found ${NUM_BROKEN_SYMLINKS} symlinks."
fi
log "✅ Found 0 symlinks."
-55
View File
@@ -1,55 +0,0 @@
#!/usr/bin/env bash
##===----------------------------------------------------------------------===##
##
## This source file is part of the Swift OpenAPI Lambda open source project
##
## Copyright (c) 2023 Amazon.com, Inc. or its affiliates
## and the Swift OpenAPI Lambda project authors
## Licensed under Apache License v2.0
##
## See LICENSE.txt for license information
## See CONTRIBUTORS.txt for the list of Swift OpenAPI Lambda project authors
##
## SPDX-License-Identifier: Apache-2.0
##
##===----------------------------------------------------------------------===##
##===----------------------------------------------------------------------===##
##
## This source file is part of the SwiftOpenAPIGenerator open source project
##
## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
## Licensed under Apache License v2.0
##
## See LICENSE.txt for license information
## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
##
## SPDX-License-Identifier: Apache-2.0
##
##===----------------------------------------------------------------------===##
set -euo pipefail
log() { printf -- "** %s\n" "$*" >&2; }
error() { printf -- "** ERROR: %s\n" "$*" >&2; }
fatal() { error "$@"; exit 1; }
log "Checking required environment variables..."
test -n "${DOCC_TARGET:-}" || fatal "DOCC_TARGET unset"
CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)"
# --warnings-as-errors \
swift package --package-path "${REPO_ROOT}" plugin generate-documentation \
--product "${DOCC_TARGET}" \
--analyze \
--level detailed \
&& DOCC_PLUGIN_RC=$? || DOCC_PLUGIN_RC=$?
if [ "${DOCC_PLUGIN_RC}" -ne 0 ]; then
fatal "❌ Generating documentation produced warnings and/or errors."
exit "${DOCC_PLUGIN_RC}"
fi
log "✅ Generated documentation with no warnings."
@@ -1,53 +0,0 @@
#!/usr/bin/env bash
##===----------------------------------------------------------------------===##
##
## This source file is part of the Swift OpenAPI Lambda open source project
##
## Copyright (c) 2023 Amazon.com, Inc. or its affiliates
## and the Swift OpenAPI Lambda project authors
## Licensed under Apache License v2.0
##
## See LICENSE.txt for license information
## See CONTRIBUTORS.txt for the list of Swift OpenAPI Lambda project authors
##
## SPDX-License-Identifier: Apache-2.0
##
##===----------------------------------------------------------------------===##
##===----------------------------------------------------------------------===##
##
## This source file is part of the SwiftOpenAPIGenerator open source project
##
## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
## Licensed under Apache License v2.0
##
## See LICENSE.txt for license information
## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
##
## SPDX-License-Identifier: Apache-2.0
##
##===----------------------------------------------------------------------===##
set -euo pipefail
log() { printf -- "** %s\n" "$*" >&2; }
error() { printf -- "** ERROR: %s\n" "$*" >&2; }
fatal() { error "$@"; exit 1; }
CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)"
UNACCEPTABLE_LANGUAGE_PATTERNS_PATH="${CURRENT_SCRIPT_DIR}/unacceptable-language.txt"
log "Checking for unacceptable language..."
PATHS_WITH_UNACCEPTABLE_LANGUAGE=$(git -C "${REPO_ROOT}" grep \
-l -F -w \
-f "${UNACCEPTABLE_LANGUAGE_PATTERNS_PATH}" \
-- \
":(exclude)${UNACCEPTABLE_LANGUAGE_PATTERNS_PATH}" \
) || true | /usr/bin/paste -s -d " " -
if [ -n "${PATHS_WITH_UNACCEPTABLE_LANGUAGE}" ]; then
fatal "❌ Found unacceptable language in files: ${PATHS_WITH_UNACCEPTABLE_LANGUAGE}."
fi
log "✅ Found no unacceptable language."
+52 -76
View File
@@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/bin/bash
##===----------------------------------------------------------------------===##
##
## This source file is part of the Swift OpenAPI Lambda open source project
@@ -14,19 +14,17 @@
##
##===----------------------------------------------------------------------===##
##===----------------------------------------------------------------------===##
##
## This source file is part of the SwiftOpenAPIGenerator open source project
##
## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
## Licensed under Apache License v2.0
##
## See LICENSE.txt for license information
## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
##
## SPDX-License-Identifier: Apache-2.0
##
##===----------------------------------------------------------------------===##
# ===----------------------------------------------------------------------===//
#
# This source file is part of the Swift.org open source project
#
# Copyright (c) 2024 Apple Inc. and the Swift project authors
# Licensed under Apache License v2.0 with Runtime Library Exception
#
# See https://swift.org/LICENSE.txt for license information
# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
#
# ===----------------------------------------------------------------------===//
set -euo pipefail
@@ -34,90 +32,68 @@ log() { printf -- "** %s\n" "$*" >&2; }
error() { printf -- "** ERROR: %s\n" "$*" >&2; }
fatal() { error "$@"; exit 1; }
CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)"
test -n "${PROJECT_NAME:-}" || fatal "PROJECT_NAME unset"
EXPECTED_FILE_HEADER_TEMPLATE="@@===----------------------------------------------------------------------===@@
expected_file_header_template="@@===----------------------------------------------------------------------===@@
@@
@@ This source file is part of the Swift OpenAPI Lambda open source project
@@ This source file is part of the ${PROJECT_NAME} open source project
@@
@@ Copyright (c) YEARS Amazon.com, Inc. or its affiliates
@@ and the Swift OpenAPI Lambda project authors
@@ and the ${PROJECT_NAME} project authors
@@ Licensed under Apache License v2.0
@@
@@ See LICENSE.txt for license information
@@ See CONTRIBUTORS.txt for the list of Swift OpenAPI Lambda project authors
@@ See CONTRIBUTORS.txt for the list of ${PROJECT_NAME} project authors
@@
@@ SPDX-License-Identifier: Apache-2.0
@@
@@===----------------------------------------------------------------------===@@"
PATHS_WITH_MISSING_LICENSE=( )
paths_with_missing_license=( )
read -ra PATHS_TO_CHECK_FOR_LICENSE <<< "$( \
git -C "${REPO_ROOT}" ls-files -z \
":(exclude).gitignore" \
":(exclude).spi.yml" \
":(exclude).swift-format" \
":(exclude).github/*" \
":(exclude)CODE_OF_CONDUCT.md" \
":(exclude)CONTRIBUTING.md" \
":(exclude)CONTRIBUTORS.txt" \
":(exclude)LICENSE.txt" \
":(exclude)NOTICE.txt" \
":(exclude)Package.swift" \
":(exclude)Package.resolved" \
":(exclude)README.md" \
":(exclude)SECURITY.md" \
":(exclude)scripts/unacceptable-language.txt" \
":(exclude)docker/*" \
":(exclude)**/*.docc/*" \
":(exclude)**/.gitignore" \
":(exclude)**/Package.swift" \
":(exclude)**/Package.resolved" \
":(exclude)**/README.md" \
":(exclude)**/openapi.yaml" \
":(exclude)**/openapi.yml" \
":(exclude)**/openapi-generator-config.yaml" \
":(exclude)**/openapi-generator-config.yml" \
":(exclude)**/docker-compose.yaml" \
":(exclude)**/docker/*" \
":(exclude)**/.dockerignore" \
":(exclude)**/Makefile" \
":(exclude)**/*.html" \
":(exclude)**/*.gif" \
":(exclude)**/*.json" \
| xargs -0 \
)"
file_paths=$(tr '\n' '\0' < .licenseignore | xargs -0 -I% printf '":(exclude)%" '| xargs git ls-files)
for FILE_PATH in "${PATHS_TO_CHECK_FOR_LICENSE[@]}"; do
FILE_BASENAME=$(basename -- "${FILE_PATH}")
FILE_EXTENSION="${FILE_BASENAME##*.}"
while IFS= read -r file_path; do
file_basename=$(basename -- "${file_path}")
file_extension="${file_basename##*.}"
case "${FILE_EXTENSION}" in
swift) EXPECTED_FILE_HEADER=$(sed -e 's|@@|//|g' <<<"${EXPECTED_FILE_HEADER_TEMPLATE}") ;;
yml) EXPECTED_FILE_HEADER=$(sed -e 's|@@|##|g' <<<"${EXPECTED_FILE_HEADER_TEMPLATE}") ;;
sh) EXPECTED_FILE_HEADER=$(cat <(echo '#!/usr/bin/env bash') <(sed -e 's|@@|##|g' <<<"${EXPECTED_FILE_HEADER_TEMPLATE}")) ;;
*) fatal "Unsupported file extension for file (exclude or update this script): ${FILE_PATH}" ;;
# shellcheck disable=SC2001 # We prefer to use sed here instead of bash search/replace
case "${file_extension}" in
swift) expected_file_header=$(sed -e 's|@@|//|g' <<<"${expected_file_header_template}") ;;
h) expected_file_header=$(sed -e 's|@@|//|g' <<<"${expected_file_header_template}") ;;
c) expected_file_header=$(sed -e 's|@@|//|g' <<<"${expected_file_header_template}") ;;
sh) expected_file_header=$(cat <(echo '#!/bin/bash') <(sed -e 's|@@|##|g' <<<"${expected_file_header_template}")) ;;
kts) expected_file_header=$(sed -e 's|@@|//|g' <<<"${expected_file_header_template}") ;;
gradle) expected_file_header=$(sed -e 's|@@|//|g' <<<"${expected_file_header_template}") ;;
groovy) expected_file_header=$(sed -e 's|@@|//|g' <<<"${expected_file_header_template}") ;;
java) expected_file_header=$(sed -e 's|@@|//|g' <<<"${expected_file_header_template}") ;;
py) expected_file_header=$(cat <(echo '#!/usr/bin/env python3') <(sed -e 's|@@|##|g' <<<"${expected_file_header_template}")) ;;
rb) expected_file_header=$(cat <(echo '#!/usr/bin/env ruby') <(sed -e 's|@@|##|g' <<<"${expected_file_header_template}")) ;;
in) expected_file_header=$(sed -e 's|@@|##|g' <<<"${expected_file_header_template}") ;;
cmake) expected_file_header=$(sed -e 's|@@|##|g' <<<"${expected_file_header_template}") ;;
*)
error "Unsupported file extension ${file_extension} for file (exclude or update this script): ${file_path}"
paths_with_missing_license+=("${file_path} ")
;;
esac
EXPECTED_FILE_HEADER_LINECOUNT=$(wc -l <<<"${EXPECTED_FILE_HEADER}")
expected_file_header_linecount=$(wc -l <<<"${expected_file_header}")
FILE_HEADER=$(head -n "${EXPECTED_FILE_HEADER_LINECOUNT}" "${FILE_PATH}")
NORMALIZED_FILE_HEADER=$(
echo "${FILE_HEADER}" \
| sed -e 's/202[3]-202[3]/YEARS/' -e 's/202[3]/YEARS/' \
file_header=$(head -n "${expected_file_header_linecount}" "${file_path}")
normalized_file_header=$(
echo "${file_header}" \
| sed -e 's/20[12][0123456789]-20[12][0123456789]/YEARS/' -e 's/20[12][0123456789]/YEARS/' \
)
if ! diff -u \
--label "Expected header" <(echo "${EXPECTED_FILE_HEADER}") \
--label "${FILE_PATH}" <(echo "${NORMALIZED_FILE_HEADER}")
--label "Expected header" <(echo "${expected_file_header}") \
--label "${file_path}" <(echo "${normalized_file_header}")
then
PATHS_WITH_MISSING_LICENSE+=("${FILE_PATH} ")
paths_with_missing_license+=("${file_path} ")
fi
done
done <<< "$file_paths"
if [ "${#PATHS_WITH_MISSING_LICENSE[@]}" -gt 0 ]; then
fatal "❌ Found missing license header in files: ${PATHS_WITH_MISSING_LICENSE[*]}."
if [ "${#paths_with_missing_license[@]}" -gt 0 ]; then
fatal "❌ Found missing license header in files: ${paths_with_missing_license[*]}."
fi
log "✅ Found no files with missing license header."
log "✅ Found no files with missing license header."
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/bin/bash
##===----------------------------------------------------------------------===##
##
## This source file is part of the Swift OpenAPI Lambda open source project
-65
View File
@@ -1,65 +0,0 @@
#!/usr/bin/env bash
##===----------------------------------------------------------------------===##
##
## This source file is part of the Swift OpenAPI Lambda open source project
##
## Copyright (c) 2023 Amazon.com, Inc. or its affiliates
## and the Swift OpenAPI Lambda project authors
## Licensed under Apache License v2.0
##
## See LICENSE.txt for license information
## See CONTRIBUTORS.txt for the list of Swift OpenAPI Lambda project authors
##
## SPDX-License-Identifier: Apache-2.0
##
##===----------------------------------------------------------------------===##
##===----------------------------------------------------------------------===##
##
## This source file is part of the SwiftOpenAPIGenerator open source project
##
## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
## Licensed under Apache License v2.0
##
## See LICENSE.txt for license information
## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
##
## SPDX-License-Identifier: Apache-2.0
##
##===----------------------------------------------------------------------===##
set -euo pipefail
log() { printf -- "** %s\n" "$*" >&2; }
error() { printf -- "** ERROR: %s\n" "$*" >&2; }
fatal() { error "$@"; exit 1; }
CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
REPO_ROOT="$(git -C "${CURRENT_SCRIPT_DIR}" rev-parse --show-toplevel)"
FORMAT_COMMAND=(lint --strict)
for arg in "$@"; do
if [ "$arg" == "--fix" ]; then
FORMAT_COMMAND=(format --in-place)
fi
done
SWIFTFORMAT_BIN=${SWIFTFORMAT_BIN:-$(command -v swift-format)} || fatal "❌ SWIFTFORMAT_BIN unset and no swift-format on PATH"
"${SWIFTFORMAT_BIN}" lint \
--parallel --recursive --strict \
"${REPO_ROOT}/Sources" \
"${REPO_ROOT}/Tests" \
&& SWIFT_FORMAT_RC=$? || SWIFT_FORMAT_RC=$?
if [ "${SWIFT_FORMAT_RC}" -ne 0 ]; then
fatal "❌ Running swift-format produced errors.
To fix, run the following command:
% swift-format format --parallel --recursive --in-place Sources Tests
"
exit "${SWIFT_FORMAT_RC}"
fi
log "✅ Ran swift-format with no errors."
-71
View File
@@ -1,71 +0,0 @@
#!/usr/bin/env bash
##===----------------------------------------------------------------------===##
##
## This source file is part of the Swift OpenAPI Lambda open source project
##
## Copyright (c) 2023 Amazon.com, Inc. or its affiliates
## and the Swift OpenAPI Lambda project authors
## Licensed under Apache License v2.0
##
## See LICENSE.txt for license information
## See CONTRIBUTORS.txt for the list of Swift OpenAPI Lambda project authors
##
## SPDX-License-Identifier: Apache-2.0
##
##===----------------------------------------------------------------------===##
##===----------------------------------------------------------------------===##
##
## This source file is part of the SwiftOpenAPIGenerator open source project
##
## Copyright (c) 2023 Apple Inc. and the SwiftOpenAPIGenerator project authors
## Licensed under Apache License v2.0
##
## See LICENSE.txt for license information
## See CONTRIBUTORS.txt for the list of SwiftOpenAPIGenerator project authors
##
## SPDX-License-Identifier: Apache-2.0
##
##===----------------------------------------------------------------------===##
set -euo pipefail
log() { printf -- "** %s\n" "$*" >&2; }
error() { printf -- "** ERROR: %s\n" "$*" >&2; }
fatal() { error "$@"; exit 1; }
CURRENT_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
NUM_CHECKS_FAILED=0
FIX_FORMAT=""
for arg in "$@"; do
if [ "$arg" == "--fix" ]; then
FIX_FORMAT="--fix"
fi
done
SCRIPT_PATHS=(
"${CURRENT_SCRIPT_DIR}/check-for-broken-symlinks.sh"
"${CURRENT_SCRIPT_DIR}/check-for-unacceptable-language.sh"
"${CURRENT_SCRIPT_DIR}/check-license-headers.sh"
)
for SCRIPT_PATH in "${SCRIPT_PATHS[@]}"; do
log "Running ${SCRIPT_PATH}..."
if ! bash "${SCRIPT_PATH}"; then
((NUM_CHECKS_FAILED+=1))
fi
done
log "Running swift-format..."
bash "${CURRENT_SCRIPT_DIR}"/run-swift-format.sh $FIX_FORMAT > /dev/null
FORMAT_EXIT_CODE=$?
if [ $FORMAT_EXIT_CODE -ne 0 ]; then
((NUM_CHECKS_FAILED+=1))
fi
if [ "${NUM_CHECKS_FAILED}" -gt 0 ]; then
fatal "${NUM_CHECKS_FAILED} soundness check(s) failed."
fi
log "✅ All soundness check(s) passed."
-15
View File
@@ -1,15 +0,0 @@
blacklist
whitelist
slave
master
sane
sanity
insane
insanity
kill
killed
killing
hang
hung
hanged
hanging