name: build on: push: paths-ignore: - "**.md" - "logo/**" pull_request: paths-ignore: - "**.md" - "logo/**" # TODO: Add deploy if needed jobs: native: if: "!contains(github.event.head_commit.message, 'skip ci')" strategy: matrix: include: - os: windows-latest name: windows static: false runs-on: ${{ matrix.os }} env: LEIN_ROOT: "true" GRAALVM_VERSION: "24" BABASHKA_PLATFORM: ${{ matrix.name }} # used in release script BABASHKA_TEST_ENV: native GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} BABASHKA_SHA: ${{ github.sha }} steps: - name: Git checkout uses: actions/checkout@v2 with: fetch-depth: 1 submodules: 'true' - name: Cache deps uses: actions/cache@v4 id: cache-deps with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('project.clj') }} restore-keys: ${{ runner.os }}-maven- - name: Setup GraalVM if: "matrix.static == false" uses: graalvm/setup-graalvm@v1.3.3 with: java-version: '24' distribution: 'graalvm' components: 'native-image' github-token: ${{ secrets.GITHUB_TOKEN }} - name: Install clojure tools uses: DeLaGuardo/setup-clojure@5.0 with: cli: latest lein: 2.9.8 - name: Babashka version id: babashka-version shell: bash run: | BABASHKA_VERSION=$(cat resources/BABASHKA_VERSION) echo "##[set-output name=version;]${BABASHKA_VERSION}" - name: Build shell: cmd run: | set GRAALVM_HOME=%JAVA_HOME% call script/uberjar.bat call script/compile.bat echo Creating zip archive set zip=babashka-%BABASHKA_VERSION%-windows-amd64.zip jar -cMf %zip% bb.exe bb --config .build/bb.edn --deps-root . release-artifact %zip% - name: Test binary and libs shell: cmd run: | set BABASHKA_CLASSPATH= set BABASHKA_TEST_ENV=native call script/test.bat :windows call script/run_lib_tests.bat - name: Upload artifact uses: actions/upload-artifact@v4 with: path: bb name: babashka-${{ steps.babashka-version.outputs.version }}-${{ matrix.name }}-amd64