name: Installer integration on: push: branches: - main paths: - "install.sh" - ".github/workflows/installer.yaml" pull_request: branches: - main paths: - "install.sh" - ".github/workflows/installer.yaml" # Cancel in-progress runs for pull requests when developers push # additional changes, and serialize builds in branches. # https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-concurrency-to-cancel-any-in-progress-job-or-run concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} permissions: contents: read jobs: ubuntu: name: Test installer on Ubuntu runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v4 - name: Install code-server run: ./install.sh - name: Test code-server was installed globally run: code-server --help alpine: name: Test installer on Alpine runs-on: ubuntu-latest container: "alpine:3.17" steps: - name: Checkout repo uses: actions/checkout@v4 - name: Install curl run: apk add curl - name: Add user run: adduser coder --disabled-password # Standalone should work without root. - name: Test standalone to a non-existent prefix run: su coder -c "./install.sh --method standalone --prefix /tmp/does/not/yet/exist" # We do not actually have Alpine standalone builds so running code-server # will not work. - name: Test code-server was installed to prefix run: test -f /tmp/does/not/yet/exist/bin/code-server macos: name: Test installer on macOS runs-on: macos-latest steps: - name: Checkout repo uses: actions/checkout@v4 - name: Install code-server run: ./install.sh - name: Test code-server was installed globally run: code-server --help