diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..f1253a3 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,72 @@ +name: build + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + name: Build and test + runs-on: ${{ matrix.os }}-latest + env: + OS_NAME: ${{ matrix.os_name }} + HOMEBREW_NO_AUTO_UPDATE: 1 + WINDOWS_SBCL_PATH: "C:/Program Files/Steel Bank Common Lisp/1.4.14" + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu + os_name: linux + bundle_ext: tar.gz + make_build_target: all + shen_exe: ./shen + prebuilt_shen_version: 3.0.2 + - os: macos + os_name: macos + bundle_ext: tar.gz + make_build_target: sbcl + shen_exe: ./shen + prebuilt_shen_version: 3.0.2 + - os: windows + os_name: windows + bundle_ext: zip + make_build_target: sbcl + sbcl_path: "C:/Program Files/Steel Bank Common Lisp/1.4.14" + shen_exe: ./shen.exe + prebuilt_shen_version: 3.0.2 + steps: + - uses: actions/checkout@v2 + - name: Setup dependencies (Linux) + if: ${{ matrix.os == 'ubuntu' }} + run: | + sudo apt install -y sbcl clisp ecl libffi-dev + wget http://mr.gy/blog/clozure-cl_1.11_amd64.deb + sudo dpkg -i clozure-cl_1.11_amd64.deb + - name: Setup dependencies (MacOS) + if: ${{ matrix.os == 'macos' }} + run: brew install sbcl + - name: Setup dependencies (Windows) + if: ${{ matrix.os == 'windows' }} + run: | + choco install make + curl -L "https://netcologne.dl.sourceforge.net/project/sbcl/sbcl/1.4.14/sbcl-1.4.14-x86-64-windows-binary.msi" -o sbcl.msi + powershell -Command "Start-Process msiexec.exe -Wait -ArgumentList '/i sbcl.msi /qn'" + - name: Fetch precompiled Shen (Linux and macOS) + if: ${{ matrix.os == 'ubuntu' || matrix.os == 'macos' }} + run: | + wget "https://github.com/Shen-Language/shen-cl/releases/download/v${{ matrix.prebuilt_shen_version }}/shen-cl-v${{ matrix.prebuilt_shen_version }}-${{ matrix.os_name }}-prebuilt.tar.gz" + tar xzf "shen-cl-v${{ matrix.prebuilt_shen_version }}-${{ matrix.os_name }}-prebuilt.tar.gz" shen + - name: Fetch precompiled Shen (Windoes) + if: ${{ matrix.os == 'windows' }} + run: | + curl -L "https://github.com/Shen-Language/shen-cl/releases/download/v${{ matrix.prebuilt_shen_version }}/shen-cl-v${{ matrix.prebuilt_shen_version }}-windows-prebuilt.zip" -o "shen-cl-v${{ matrix.prebuilt_shen_version }}-windows-prebuilt.zip" + 7z e "shen-cl-v${{ matrix.prebuilt_shen_version }}-windows-prebuilt.zip" shen.exe + - name: Fetch kernel + run: make fetch + - name: Precompile code + run: make precompile SHEN=${{ matrix.shen_exe }} + - name: Build and test + run: make ${{ matrix.make_build_target }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 9854902..0000000 --- a/.travis.yml +++ /dev/null @@ -1,83 +0,0 @@ -notifications: - email: false -language: generic -sudo: required -env: - global: - - PREBUILT_SHEN_VERSION=3.0.2 -matrix: - include: - - os: linux - env: - - OS_NAME=linux - - BUNDLE_EXT=tar.gz - - MAKE_BUILD_TARGET=all - - SHEN=./shen - install: - - wget http://mr.gy/blog/clozure-cl_1.11_amd64.deb - - sudo dpkg -i clozure-cl_1.11_amd64.deb - - wget http://http.us.debian.org/debian/pool/main/s/sbcl/sbcl_1.3.14-2+b1_amd64.deb - - sudo dpkg -i sbcl_1.3.14-2+b1_amd64.deb - - wget "https://github.com/Shen-Language/shen-cl/releases/download/v${PREBUILT_SHEN_VERSION}/shen-cl-v${PREBUILT_SHEN_VERSION}-linux-prebuilt.tar.gz" - - tar xzf "shen-cl-v${PREBUILT_SHEN_VERSION}-linux-prebuilt.tar.gz" shen - - os: osx - env: - - OS_NAME=macos - - BUNDLE_EXT=tar.gz - - HOMEBREW_NO_AUTO_UPDATE=1 - - MAKE_BUILD_TARGET=sbcl - - SHEN=./shen - before_install: - - test -f /usr/local/opt/sbcl/installed || { rmdir /usr/local/opt/sbcl; brew update; brew install sbcl; touch /usr/local/opt/sbcl/installed; } - - brew link sbcl - install: - - wget "https://github.com/Shen-Language/shen-cl/releases/download/v${PREBUILT_SHEN_VERSION}/shen-cl-v${PREBUILT_SHEN_VERSION}-macos-prebuilt.tar.gz" - - tar xzf "shen-cl-v${PREBUILT_SHEN_VERSION}-macos-prebuilt.tar.gz" shen - before_cache: - - brew cleanup - cache: - directories: - - $HOME/Library/Caches/Homebrew - - /usr/local/Cellar/sbcl - - /usr/local/opt/sbcl - - os: windows - language: shell - env: - - OS_NAME=windows - - BUNDLE_EXT=zip - - MAKE_BUILD_TARGET=sbcl - - SBCL_PATH="C:/Program Files/Steel Bank Common Lisp/1.4.14" - - SHEN=./shen.exe - install: - - choco install make - - curl -L "https://netcologne.dl.sourceforge.net/project/sbcl/sbcl/1.4.14/sbcl-1.4.14-x86-64-windows-binary.msi" -o sbcl.msi - - powershell -Command "Start-Process msiexec.exe -Wait -ArgumentList '/i sbcl.msi /qn'" - - curl -L "https://github.com/Shen-Language/shen-cl/releases/download/v${PREBUILT_SHEN_VERSION}/shen-cl-v${PREBUILT_SHEN_VERSION}-windows-prebuilt.zip" -o "shen-cl-v${PREBUILT_SHEN_VERSION}-windows-prebuilt.zip" - - 7z e "shen-cl-v${PREBUILT_SHEN_VERSION}-windows-prebuilt.zip" shen.exe -addons: - apt: - packages: - - clisp - - ecl - - libffi-dev -script: - - make fetch - - make precompile - - make $MAKE_BUILD_TARGET -before_deploy: - - make release - - if [[ "$TRAVIS_OS_NAME" == "linux" || "$TRAVIS_OS_NAME" == "windows" ]]; then - make source-release; - fi; -deploy: - provider: releases - api_key: - secure: "Sn723VHbd3S+e5Zu70R7K/Vjus0oIJLK3aJDz5gcToJxN7xPEIDo+MynKy1K9Fs4IxTTPrXoptuRxCiliblQwkma9ubw/u5Emb3j3MGM4qyLDQKZEUTUPkHHsOK+PwDGv8xmmsFV9W7/CX55shJFSPINDNW2wk/fg4lzgEKO6EUgURdvKg6m8LlvkSMtqo63VXCgZU/OABUhKnounrCBzE9r5arIchXwkEn0HOOEvfGZR7opMJrdWl3IbPGN6zQJJDay7s8UTjNG/951hSGxvFaBF0FTDchzzI4TQkF587w6Lb/Q9skXwkGGWsK36s+eUIUyrrMCaIDHwBNYPY57eLGRSxcOlIsyUQZTrE7OT/hYzSdBo3EhpXeXbdHQoVzmSQ4nu3nm35tb8jKZ8+VNzWqi+dLWnK1hU+RzU+6zYvxfOFsmxAgiz3LnWY9fyrrdxrlhckJuu2TKxEoNV0WfevpV3vVDLOb3mDNoVS7/DKLEo0OqBrSjTzHJf8xc2Yb1fthEbc2leMyTEZHZNc6vhTPPrUwCths2fzxiT5mMO3jYQOQ3zmhE+CkofRmgWJbGVoUHggUyMSk7rlXI+45CpTaSYqxSFJFAr1owkBNZefFFAE4/9f3JEPtol2PaYRgQ6Tv6qJwyjYjAB7jglpGc5Bv08P4XiFjALjw2rqQSPfI=" - file: - - release/shen-cl-${TRAVIS_TAG}-${OS_NAME}-prebuilt.${BUNDLE_EXT} - - release/shen-cl-${TRAVIS_TAG}-sources.${BUNDLE_EXT} - skip_cleanup: true - draft: true - on: - tags: true - repo: Shen-Language/shen-cl diff --git a/Makefile b/Makefile index 2b8ea97..53bac41 100644 --- a/Makefile +++ b/Makefile @@ -42,7 +42,7 @@ else Slash=/ ArchiveSuffix=.tar.gz BinarySuffix= - All=clisp ccl ecl sbcl + All=ccl ecl sbcl ifeq ($(OSName),freebsd) All=ccl ecl sbcl else ifeq ($(OSName),openbsd) @@ -57,8 +57,8 @@ CLISP=clisp ECL=ecl SBCL=sbcl -ifeq ($(TRAVIS_OS_NAME),windows) - SBCL="$(SBCL_PATH)/sbcl.exe" --core "$(SBCL_PATH)/sbcl.core" +ifeq ($(OS_NAME),windows) + SBCL="$(WINDOWS_SBCL_PATH:)/sbcl.exe" --core "$(WINDOWS_SBCL_PATH:)/sbcl.core" endif #