Release: 0.84.0 #210
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| tags: | |
| - '*' | |
| jobs: | |
| build-jar: | |
| name: Build JVM | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Prepare java | |
| uses: actions/setup-java@v1 | |
| with: | |
| java-version: 24 | |
| - name: Install Clojure | |
| uses: DeLaGuardo/setup-clojure@master | |
| with: | |
| cli: '1.12.0.1495' | |
| bb: '1.12.200' | |
| - name: Get latest tag | |
| id: latest-tag | |
| uses: WyriHaximus/github-action-get-previous-tag@v1 | |
| - name: Generate jar | |
| run: bb prod-jar | |
| - name: Upload jar | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca.jar | |
| name: eca.jar | |
| - name: Generate sha256 | |
| run: sha256sum eca.jar | awk '{print $1}' > eca.jar.sha256 | |
| - name: Upload sha256 | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca.jar.sha256 | |
| name: eca.jar.sha256 | |
| linux-amd64: | |
| name: Build native linux amd64 binary | |
| needs: [ build-jar] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: eca.jar | |
| - name: Install clojure build tools | |
| uses: DeLaGuardo/setup-clojure@master | |
| with: | |
| cli: '1.12.0.1495' | |
| bb: '1.12.200' | |
| - uses: graalvm/setup-graalvm@v1 | |
| with: | |
| java-version: '24' | |
| distribution: 'graalvm' | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build Linux native image | |
| env: | |
| ECA_JAR: "eca.jar" | |
| ECA_XMX: "-J-Xmx6g" | |
| run: | | |
| bb native-cli | |
| - name: Compress binary | |
| uses: svenstaro/upx-action@v2 | |
| with: | |
| file: eca | |
| - name: Zip binary | |
| run: zip eca-native-linux-amd64.zip eca | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca-native-linux-amd64.zip | |
| name: eca-native-linux-amd64.zip | |
| - name: Generate sha256 | |
| run: sha256sum eca-native-linux-amd64.zip | awk '{print $1}' > eca-native-linux-amd64.zip.sha256 | |
| - name: Upload sha256 | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca-native-linux-amd64.zip.sha256 | |
| name: eca-native-linux-amd64.zip.sha256 | |
| linux-amd64-static: | |
| name: Build native linux amd64 static binary | |
| needs: [ build-jar] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: eca.jar | |
| - name: Install clojure build tools | |
| uses: DeLaGuardo/setup-clojure@master | |
| with: | |
| cli: '1.12.0.1495' | |
| bb: '1.12.200' | |
| - uses: graalvm/setup-graalvm@v1 | |
| with: | |
| java-version: '24' | |
| distribution: 'graalvm' | |
| native-image-musl: 'true' | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build static Linux native image | |
| env: | |
| ECA_JAR: "eca.jar" | |
| ECA_XMX: "-J-Xmx6g" | |
| ECA_STATIC: true | |
| ECA_MUSL: true | |
| run: | | |
| bb native-cli | |
| - name: Zip binary | |
| run: zip eca-native-static-linux-amd64.zip eca | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca-native-static-linux-amd64.zip | |
| name: eca-native-static-linux-amd64.zip | |
| - name: Generate sha256 | |
| run: sha256sum eca-native-static-linux-amd64.zip | awk '{print $1}' > eca-native-static-linux-amd64.zip.sha256 | |
| - name: Upload sha256 | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca-native-static-linux-amd64.zip.sha256 | |
| name: eca-native-static-linux-amd64.zip.sha256 | |
| linux-aarch64: | |
| name: Build native linux aarch64 binary | |
| needs: [ build-jar] | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: eca.jar | |
| - name: Install clojure build tools | |
| uses: DeLaGuardo/setup-clojure@master | |
| with: | |
| cli: '1.12.0.1495' | |
| bb: '1.12.200' | |
| - uses: graalvm/setup-graalvm@v1 | |
| with: | |
| java-version: '24' | |
| distribution: 'graalvm' | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build Linux native image | |
| env: | |
| ECA_JAR: "eca.jar" | |
| ECA_XMX: "-J-Xmx6g" | |
| run: | | |
| bb native-cli | |
| - name: Zip binary | |
| run: zip eca-native-linux-aarch64.zip eca | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca-native-linux-aarch64.zip | |
| name: eca-native-linux-aarch64.zip | |
| - name: Generate sha256 | |
| run: sha256sum eca-native-linux-aarch64.zip | awk '{print $1}' > eca-native-linux-aarch64.zip.sha256 | |
| - name: Upload sha256 | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca-native-linux-aarch64.zip.sha256 | |
| name: eca-native-linux-aarch64.zip.sha256 | |
| macos-amd64: | |
| name: Build native MacOS amd64 binary | |
| needs: [ build-jar] | |
| runs-on: macos-15-intel | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: eca.jar | |
| - name: Install clojure build tools | |
| uses: DeLaGuardo/setup-clojure@master | |
| with: | |
| cli: '1.12.0.1495' | |
| bb: '1.12.200' | |
| - uses: graalvm/setup-graalvm@v1 | |
| with: | |
| java-version: '24' | |
| distribution: 'graalvm' | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build MacOS native image | |
| env: | |
| ECA_JAR: "eca.jar" | |
| ECA_XMX: "-J-Xmx6g" | |
| run: | | |
| bb native-cli | |
| - name: Zip binary | |
| run: zip eca-native-macos-amd64.zip eca | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca-native-macos-amd64.zip | |
| name: eca-native-macos-amd64.zip | |
| - name: Generate sha256 | |
| run: sha256sum eca-native-macos-amd64.zip | awk '{print $1}' > eca-native-macos-amd64.zip.sha256 | |
| - name: Upload sha256 | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca-native-macos-amd64.zip.sha256 | |
| name: eca-native-macos-amd64.zip.sha256 | |
| macos-aarch64: | |
| name: Build native MacOS aarch64 binary | |
| needs: [ build-jar] | |
| runs-on: macos-14 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: eca.jar | |
| - name: Install clojure build tools | |
| uses: DeLaGuardo/setup-clojure@master | |
| with: | |
| cli: '1.12.0.1495' | |
| bb: '1.12.200' | |
| - uses: graalvm/setup-graalvm@v1 | |
| with: | |
| java-version: '24' | |
| distribution: 'graalvm' | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build MacOS native image | |
| env: | |
| ECA_JAR: "eca.jar" | |
| ECA_XMX: "-J-Xmx6g" | |
| run: | | |
| bb native-cli | |
| - name: Zip binary | |
| run: zip eca-native-macos-aarch64.zip eca | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca-native-macos-aarch64.zip | |
| name: eca-native-macos-aarch64.zip | |
| - name: Generate sha256 | |
| run: sha256sum eca-native-macos-aarch64.zip | awk '{print $1}' > eca-native-macos-aarch64.zip.sha256 | |
| - name: Upload sha256 | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca-native-macos-aarch64.zip.sha256 | |
| name: eca-native-macos-aarch64.zip.sha256 | |
| windows-amd64: | |
| name: Build native Windows binary | |
| needs: [ build-jar] | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: eca.jar | |
| - name: configure Pagefile | |
| uses: al-cheb/[email protected] | |
| with: | |
| minimum-size: 8GB | |
| maximum-size: 16GB | |
| - name: Prepare java | |
| uses: actions/setup-java@v1 | |
| with: | |
| java-version: 24 | |
| - name: Install clojure build tools | |
| uses: DeLaGuardo/setup-clojure@master | |
| with: | |
| cli: '1.12.0.1495' | |
| bb: '1.12.200' | |
| - name: Install MSVC | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Install GraalVM | |
| uses: DeLaGuardo/setup-graalvm@master | |
| with: | |
| graalvm: 22.2.0 | |
| java: java17 | |
| - name: Install native-image component | |
| run: | | |
| gu.cmd install native-image | |
| # see https://github.com/oracle/graal/issues/4340 | |
| - name: GraalVM workaround to support UPX compression | |
| run: | | |
| 7z d "$env:JAVA_HOME\lib\svm\builder\svm.jar" com/oracle/svm/core/windows/WindowsImageHeapProviderFeature.class | |
| - name: Build Windows native image | |
| env: | |
| ECA_JAR: eca.jar | |
| ECA_XMX: "-J-Xmx7g" | |
| run: | | |
| bb native-cli | |
| - name: Compress binary | |
| uses: svenstaro/upx-action@v2 | |
| with: | |
| file: eca.exe | |
| - name: Zip binary | |
| run: | | |
| jar -cMf eca-native-windows-amd64.zip eca.exe | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca-native-windows-amd64.zip | |
| name: eca-native-windows-amd64.zip | |
| - name: Generate sha256 | |
| run: sha256sum eca-native-windows-amd64.zip | awk '{print $1}' > eca-native-windows-amd64.zip.sha256 | |
| - name: Upload sha256 | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| path: eca-native-windows-amd64.zip.sha256 | |
| name: eca-native-windows-amd64.zip.sha256 | |
| release: | |
| name: Create Release | |
| environment: prod-release | |
| needs: [build-jar, linux-amd64, linux-amd64-static, linux-aarch64, macos-amd64, macos-aarch64, windows-amd64] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Get latest tag | |
| id: latest-tag | |
| uses: WyriHaximus/github-action-get-previous-tag@v1 | |
| - name: Install Babashka | |
| run: curl -s https://raw.githubusercontent.com/borkdude/babashka/master/install | sudo bash | |
| - name: Retrieve last changelog entry | |
| id: changelog | |
| run: | | |
| echo 'CHANGELOG_BODY<<EOF' >> $GITHUB_ENV | |
| bb get-last-changelog-entry ${{ steps.latest-tag.outputs.tag}} >> $GITHUB_ENV | |
| echo 'EOF' >> $GITHUB_ENV | |
| - name: Create Release | |
| id: create_release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| token: ${{ secrets.ECA_TOKEN }} | |
| tag_name: ${{ steps.latest-tag.outputs.tag}} | |
| body: ${{ env.CHANGELOG_BODY }} | |
| upload-to-release: | |
| name: Upload artifacts to release | |
| needs: [release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Get latest tag | |
| id: latest-tag | |
| uses: WyriHaximus/github-action-get-previous-tag@v1 | |
| - uses: actions/download-artifact@v4 | |
| - name: Upload jar | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca.jar/eca.jar | |
| asset_name: eca.jar | |
| tag: ${{ steps.latest-tag.outputs.tag}} | |
| - name: Upload jar sha256 | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca.jar.sha256/eca.jar.sha256 | |
| asset_name: eca.jar.sha256 | |
| tag: ${{ steps.latest-tag.outputs.tag}} | |
| - name: Upload Linux amd64 native binary | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca-native-linux-amd64.zip/eca-native-linux-amd64.zip | |
| asset_name: eca-native-linux-amd64.zip | |
| tag: ${{ steps.latest-tag.outputs.tag }} | |
| - name: Upload Linux amd64 native sha256 | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca-native-linux-amd64.zip.sha256/eca-native-linux-amd64.zip.sha256 | |
| asset_name: eca-native-linux-amd64.zip.sha256 | |
| tag: ${{ steps.latest-tag.outputs.tag}} | |
| - name: Upload static Linux amd64 native binary | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca-native-static-linux-amd64.zip/eca-native-static-linux-amd64.zip | |
| asset_name: eca-native-static-linux-amd64.zip | |
| tag: ${{ steps.latest-tag.outputs.tag }} | |
| - name: Upload static Linux amd64 native sha256 | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca-native-static-linux-amd64.zip.sha256/eca-native-static-linux-amd64.zip.sha256 | |
| asset_name: eca-native-static-linux-amd64.zip.sha256 | |
| tag: ${{ steps.latest-tag.outputs.tag}} | |
| - name: Upload Linux aarch64 native binary | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca-native-linux-aarch64.zip/eca-native-linux-aarch64.zip | |
| asset_name: eca-native-linux-aarch64.zip | |
| tag: ${{ steps.latest-tag.outputs.tag }} | |
| - name: Upload Linux aarch64 native sha256 | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca-native-linux-aarch64.zip.sha256/eca-native-linux-aarch64.zip.sha256 | |
| asset_name: eca-native-linux-aarch64.zip.sha256 | |
| tag: ${{ steps.latest-tag.outputs.tag}} | |
| - name: Upload MacOS amd64 native binary | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca-native-macos-amd64.zip/eca-native-macos-amd64.zip | |
| asset_name: eca-native-macos-amd64.zip | |
| tag: ${{ steps.latest-tag.outputs.tag}} | |
| - name: Upload MacOS amd64 native sha256 | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca-native-macos-amd64.zip.sha256/eca-native-macos-amd64.zip.sha256 | |
| asset_name: eca-native-macos-amd64.zip.sha256 | |
| tag: ${{ steps.latest-tag.outputs.tag}} | |
| - name: Upload MacOS aarch64 native binary | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca-native-macos-aarch64.zip/eca-native-macos-aarch64.zip | |
| asset_name: eca-native-macos-aarch64.zip | |
| tag: ${{ steps.latest-tag.outputs.tag}} | |
| - name: Upload MacOS aarch64 native sha256 | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca-native-macos-aarch64.zip.sha256/eca-native-macos-aarch64.zip.sha256 | |
| asset_name: eca-native-macos-aarch64.zip.sha256 | |
| tag: ${{ steps.latest-tag.outputs.tag}} | |
| - name: Upload Windows native binary | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca-native-windows-amd64.zip/eca-native-windows-amd64.zip | |
| asset_name: eca-native-windows-amd64.zip | |
| tag: ${{ steps.latest-tag.outputs.tag}} | |
| - name: Upload Windows native sha256 | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.ECA_TOKEN }} | |
| file: eca-native-windows-amd64.zip.sha256/eca-native-windows-amd64.zip.sha256 | |
| asset_name: eca-native-windows-amd64.zip.sha256 | |
| tag: ${{ steps.latest-tag.outputs.tag}} |