diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..cffa8ae --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,87 @@ +name: CI + +on: + push: + branches: + - master + - "issue*" + pull_request: + branches: + - master + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + linux: + name: Linux / Swift ${{ matrix.swift }} + runs-on: ubuntu-24.04 + timeout-minutes: 30 + + strategy: + fail-fast: false + matrix: + include: + - swift: 4.0.3 + image: 4.0.3 + - swift: 4.1.3 + image: 4.1.3 + - swift: 4.2.4 + image: 4.2.4 + - swift: 5.0.3 + image: 5.0.3-xenial + - swift: 5.1 + image: "5.1" + + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Build and test + run: | + set -euo pipefail + uid="$(id -u)" + gid="$(id -g)" + + docker run --rm \ + --user "${uid}:${gid}" \ + -v "${PWD}:/workspace" \ + -w /workspace \ + swift:${{ matrix.image }} \ + bash -lc ' + set -euo pipefail + tmp_home="$(mktemp -d)" + resolved_tmp_home="$(realpath "${tmp_home}")" + if [[ -z "${resolved_tmp_home}" || "${resolved_tmp_home}" == "/" || "${resolved_tmp_home}" != /tmp/* || ! -d "${resolved_tmp_home}" ]]; then + echo "Failed to create a temporary HOME directory." >&2 + exit 1 + fi + readonly resolved_tmp_home + export HOME="${resolved_tmp_home}" + cleanup() { rm -rf -- "${resolved_tmp_home}"; } + trap cleanup EXIT + swift --version + swift build + swift test + ' + + macos: + name: macOS / default Swift + runs-on: macos-latest + timeout-minutes: 30 + + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Build and test + run: | + set -euo pipefail + swift --version + swift build + swift test diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 4395f27..0000000 --- a/.travis.yml +++ /dev/null @@ -1,72 +0,0 @@ -# Travis CI build file. - -# whitelist (branches that should be built) -branches: - only: - - master - - /^issue.*$/ - -# the matrix of builds should cover each combination of Swift version -# and platform that is supported. The version of Swift used is specified -# by .swift-version, unless SWIFT_SNAPSHOT is specified. -matrix: - include: - - os: linux - dist: xenial - sudo: required - services: docker - env: DOCKER_IMAGE=swift:4.0.3 SWIFT_SNAPSHOT=4.0.3 - - os: linux - dist: xenial - sudo: required - services: docker - env: DOCKER_IMAGE=swift:4.1.3 SWIFT_SNAPSHOT=4.1.3 - - os: linux - dist: xenial - sudo: required - services: docker - env: DOCKER_IMAGE=swift:4.2.4 SWIFT_SNAPSHOT=4.2.4 - - os: linux - dist: xenial - sudo: required - services: docker - env: DOCKER_IMAGE=swift:5.0.3-xenial SWIFT_SNAPSHOT=5.0.3 - - os: linux - dist: xenial - sudo: required - services: docker - env: DOCKER_IMAGE=swift:5.1 - - os: linux - dist: xenial - sudo: required - services: docker - env: DOCKER_IMAGE=swift:5.1 SWIFT_SNAPSHOT=$SWIFT_DEVELOPMENT_SNAPSHOT - - os: osx - osx_image: xcode9.2 - sudo: required - env: SWIFT_SNAPSHOT=4.0.3 - - os: osx - osx_image: xcode9.4 - sudo: required - env: SWIFT_SNAPSHOT=4.1.2 - - os: osx - osx_image: xcode10.1 - sudo: required - env: SWIFT_SNAPSHOT=4.2.1 - - os: osx - osx_image: xcode10.2 - sudo: required - env: SWIFT_SNAPSHOT=5.0.1 JAZZY_ELIGIBLE=true - - os: osx - osx_image: xcode11 - sudo: required - - os: osx - osx_image: xcode11 - sudo: required - env: SWIFT_SNAPSHOT=$SWIFT_DEVELOPMENT_SNAPSHOT - -before_install: - - git clone https://github.com/Kitura/Package-Builder.git - -script: - - ./Package-Builder/build-package.sh -projectDir $TRAVIS_BUILD_DIR diff --git a/README.md b/README.md index 8d00cc9..cf0a714 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ APIDoc - - Build Status - Master + + CI macOS Linux diff --git a/docs/docsets/KituraCache.docset/Contents/Resources/Documents/index.html b/docs/docsets/KituraCache.docset/Contents/Resources/Documents/index.html index 852d7eb..e617d09 100644 --- a/docs/docsets/KituraCache.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/KituraCache.docset/Contents/Resources/Documents/index.html @@ -82,8 +82,8 @@ Docs - - Build Status - Master + + CI Mac OS X Linux diff --git a/docs/index.html b/docs/index.html index 852d7eb..e617d09 100644 --- a/docs/index.html +++ b/docs/index.html @@ -82,8 +82,8 @@ Docs - - Build Status - Master + + CI Mac OS X Linux