From c31e72fb7bf13bf396c08718098e4965232fea41 Mon Sep 17 00:00:00 2001 From: Asher Date: Fri, 2 Jul 2021 13:18:37 -0500 Subject: [PATCH] Add installer integration tests --- .github/workflows/ci.yaml | 4 +-- .github/workflows/installer.yml | 39 +++++++++++++++++++++++++++++ ci/build/test-standalone-release.sh | 14 +++++++---- 3 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/installer.yml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 377caec98..fef2d04ed 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,4 +1,4 @@ -name: ci +name: Build on: push: @@ -16,7 +16,7 @@ on: jobs: prebuild: - name: Pre-Build checks + name: Pre-build checks runs-on: ubuntu-latest timeout-minutes: 5 env: diff --git a/.github/workflows/installer.yml b/.github/workflows/installer.yml new file mode 100644 index 000000000..0a004b8b5 --- /dev/null +++ b/.github/workflows/installer.yml @@ -0,0 +1,39 @@ +name: Installer integration + +on: + push: + branches: + - main + paths: + - "installer.sh" + pull_request: + branches: + - main + +jobs: + ubuntu: + name: Test installer on Ubuntu + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Install code-server + run: ./install.sh + + - name: Test code-server + run: yarn test:standalone-release code-server + + macos: + name: Test installer on macOS + runs-on: macos-latest + + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Install code-server + run: ./install.sh + + - name: Test code-server + run: yarn test:standalone-release code-server diff --git a/ci/build/test-standalone-release.sh b/ci/build/test-standalone-release.sh index 818aac8b9..73961dd44 100755 --- a/ci/build/test-standalone-release.sh +++ b/ci/build/test-standalone-release.sh @@ -1,7 +1,9 @@ #!/usr/bin/env bash set -euo pipefail -# Makes sure the release works. +# Make sure a code-server release works. You can pass in the path otherwise it +# will use release-standalone in the current directory. +# # This is to make sure we don't have Node version errors or any other # compilation-related errors. main() { @@ -10,12 +12,14 @@ main() { local EXTENSIONS_DIR EXTENSIONS_DIR="$(mktemp -d)" - echo "Testing standalone release." + local path=${1:-./release-standalone/bin/code-server} - # Note: using a basic theme extension because it doesn't update often and is more reliable for testing - ./release-standalone/bin/code-server --extensions-dir "$EXTENSIONS_DIR" --install-extension wesbos.theme-cobalt2 + echo "Testing standalone release in $path." + + # NOTE: using a basic theme extension because it doesn't update often and is more reliable for testing + "$path" --extensions-dir "$EXTENSIONS_DIR" --install-extension wesbos.theme-cobalt2 local installed_extensions - installed_extensions="$(./release-standalone/bin/code-server --extensions-dir "$EXTENSIONS_DIR" --list-extensions 2>&1)" + installed_extensions="$("$path" --extensions-dir "$EXTENSIONS_DIR" --list-extensions 2>&1)" # We use grep as wesbos.theme-cobalt2 may have dependency extensions that change. if ! echo "$installed_extensions" | grep -q "wesbos.theme-cobalt2"; then echo "Unexpected output from listing extensions:"