name: CI
on:
  pull_request:
  push:

jobs:
  test:
    runs-on: ubuntu-latest
    env:
      JVM_OPTS: -Dfile.encoding=UTF-8 -Xmx1G -Xms1G -server -XX:ReservedCodeCacheSize=128M
      JAVA_OPTS: -Dfile.encoding=UTF-8 -Xmx1G -Xms1G -server -XX:ReservedCodeCacheSize=128M
    steps:
    - name: Checkout
      uses: actions/checkout@v4
    - name: Setup
      uses: actions/setup-java@v4
      with:
        distribution: 'adopt'
        java-version: '11'
        cache: 'sbt'
    - name: Setup sbt
      uses: sbt/setup-sbt@v1
    - name: Setup node
      uses: actions/setup-node@v4
      with:
        node-version: 20
    - name: Setup Rust
      uses: actions-rust-lang/setup-rust-toolchain@v1
    - name: Install mdbook
      run: |
        cargo install mdbook --no-default-features --features search --vers "^0.4" --locked
        cargo install mdbook-variables --vers "^0.2" --locked
        cargo install mdbook-admonish --vers "^1" --locked
        export PATH="$PATH:$HOME/.cargo/bin"
        mdbook --version

    - name: Build and test
      run: |
        sbt -v scalafmtSbtCheck scalafmtCheckAll makeSite

    # https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets
    - name: Deploy to GH Pages
      if: ${{ github.event_name == 'push' && github.repository == 'sbt/website' && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/1.x' || github.ref == 'refs/heads/1.x-beta') }}
      run: .github/publish-site.sh
      env:
        DEPLOY_KEY_PASSPHRASE: ${{ secrets.DEPLOY_KEY_PASSPHRASE }}