on: push: branches: [master] pull_request: name: Test env: GOPROXY: https://proxy.golang.org GO111MODULE: on SASS_VERSION: 1.63.2 DART_SASS_SHA_LINUX: 3ea33c95ad5c35fda6e9a0956199eef38a398f496cfb8750e02479d7d1dd42af DART_SASS_SHA_MACOS: 11c70f259836b250b44a9cb57fed70e030f21f45069b467d371685855f1eb4f0 DART_SASS_SHA_WINDOWS: cd8cd36a619dd8e27f93d3186c52d70eb7d69472aa6c85f5094b29693e773f64 permissions: contents: read jobs: test: strategy: matrix: go-version: [1.22.x, 1.23.x] os: [ubuntu-latest, windows-latest] # macos disabled for now because of disk space issues. runs-on: ${{ matrix.os }} steps: - if: matrix.os == 'ubuntu-latest' name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 with: # this might remove tools that are actually needed, # if set to "true" but frees about 6 GB tool-cache: false android: true dotnet: true haskell: true large-packages: true docker-images: true swap-storage: true - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Install Go uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: go-version: ${{ matrix.go-version }} check-latest: true cache: true cache-dependency-path: | **/go.sum **/go.mod - name: Install Ruby uses: ruby/setup-ruby@a6e6f86333f0a2523ece813039b8b4be04560854 # v1.190.0 with: ruby-version: "2.7" bundler-cache: true # - name: Install Python uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f # v5.1.1 with: python-version: "3.x" - name: Install Mage run: go install github.com/magefile/mage@v1.15.0 - name: Install asciidoctor uses: reitzig/actions-asciidoctor@c642db5eedd1d729bb8c92034770d0b2f769eda6 # v2.0.2 - name: Install docutils run: | pip install docutils rst2html --version - if: matrix.os == 'ubuntu-latest' name: Install pandoc on Linux run: | sudo apt-get update -y sudo apt-get install -y pandoc - if: matrix.os == 'macos-latest' run: | brew install pandoc - if: matrix.os == 'windows-latest' run: | choco install pandoc - run: pandoc -v - if: matrix.os == 'windows-latest' run: | choco install mingw - if: matrix.os == 'ubuntu-latest' name: Install dart-sass Linux run: | echo "Install Dart Sass version ${SASS_VERSION} ..." curl -LJO "https://github.com/sass/dart-sass/releases/download/${SASS_VERSION}/dart-sass-${SASS_VERSION}-linux-x64.tar.gz"; echo "${DART_SASS_SHA_LINUX} dart-sass-${SASS_VERSION}-linux-x64.tar.gz" | sha256sum -c; tar -xvf "dart-sass-${SASS_VERSION}-linux-x64.tar.gz"; echo "$GOBIN" echo "$GITHUB_WORKSPACE/dart-sass/" >> $GITHUB_PATH - if: matrix.os == 'macos-latest' name: Install dart-sass MacOS run: | echo "Install Dart Sass version ${SASS_VERSION} ..." curl -LJO "https://github.com/sass/dart-sass/releases/download/${SASS_VERSION}/dart-sass-${SASS_VERSION}-macos-x64.tar.gz"; echo "${DART_SASS_SHA_MACOS} dart-sass-${SASS_VERSION}-macos-x64.tar.gz" | shasum -a 256 -c; tar -xvf "dart-sass-${SASS_VERSION}-macos-x64.tar.gz"; echo "$GITHUB_WORKSPACE/dart-sass/" >> $GITHUB_PATH - if: matrix.os == 'windows-latest' name: Install dart-sass Windows run: | echo "Install Dart Sass version ${env:SASS_VERSION} ..." curl -LJO "https://github.com/sass/dart-sass/releases/download/${env:SASS_VERSION}/dart-sass-${env:SASS_VERSION}-windows-x64.zip"; Expand-Archive -Path "dart-sass-${env:SASS_VERSION}-windows-x64.zip" -DestinationPath .; echo "$env:GITHUB_WORKSPACE/dart-sass/" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf-8 -Append - if: matrix.os == 'ubuntu-latest' name: Install staticcheck run: go install honnef.co/go/tools/cmd/staticcheck@latest - if: matrix.os == 'ubuntu-latest' name: Run staticcheck run: staticcheck ./... - if: matrix.os != 'windows-latest' name: Check run: | sass --version; mage -v check; env: HUGO_BUILD_TAGS: extended - if: matrix.os == 'windows-latest' # See issue #11052. We limit the build to regular test (no -race flag) on Windows for now. name: Test run: | mage -v test; env: HUGO_BUILD_TAGS: extended - name: Build tags run: | go install -tags extended,nodeploy - if: matrix.os == 'ubuntu-latest' name: Build for dragonfly run: | go install env: GOARCH: amd64 GOOS: dragonfly