Copy from vald-client-clj (#290) #2
This file contains 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: Build native image | |
# on: | |
# push: | |
# branches: | |
# - main | |
# tags: | |
# - '*.*.*' | |
# - 'v*.*.*' | |
# - '*.*.*-*' | |
# - 'v*.*.*-*' | |
# pull_request: | |
# paths: | |
# - .github/** | |
# - src/** | |
# - cmd/** | |
# - project.clj | |
# - Makefile | |
# - VALD_CLIENT_CLJ_VERSION | |
# | |
# jobs: | |
# build-linux: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: Install GraalVM | |
# run: | | |
# TMP_GRAALVM_HOME=/tmp/graalvm | |
# GRAALVM_HOME=/tmp/graalvm | |
# GRAALVM_TGZ_URI="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${GRAALVM_VERSION}/graalvm-ce-${JAVA_VERSION}-linux-amd64-${GRAALVM_VERSION}.tar.gz" | |
# curl -sL $GRAALVM_TGZ_URI --output graalvm.tar.gz | |
# mkdir -p $TMP_GRAALVM_HOME | |
# tar -xf graalvm.tar.gz -C $TMP_GRAALVM_HOME --strip-components=1 | |
# chmod -R a+rwx $TMP_GRAALVM_HOME | |
# echo "PATH=$GRAALVM_HOME/bin:$PATH" >> $GITHUB_ENV | |
# echo "GRAALVM_HOME=$GRAALVM_HOME" >> $GITHUB_ENV | |
# echo "JAVA_HOME=$GRAALVM_HOME" >> $GITHUB_ENV | |
# env: | |
# GRAALVM_VERSION: 21.0.0 | |
# JAVA_VERSION: java11 | |
# - name: Install dependencies | |
# run: | | |
# gu install native-image | |
# curl -o lein https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein | |
# chmod a+x lein | |
# sudo ./lein version | |
# sudo apt-get update && sudo apt-get install -y upx | |
# - name: Build native-image | |
# run: | | |
# make valdcli | |
# # upx --lzma --best valdcli | |
# chmod a+x valdcli | |
# - name: Upload artifact | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: valdcli-linux | |
# path: ./valdcli | |
# build-linux-static: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: Install GraalVM | |
# run: | | |
# TMP_GRAALVM_HOME=/tmp/graalvm | |
# GRAALVM_HOME=/tmp/graalvm | |
# GRAALVM_TGZ_URI="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${GRAALVM_VERSION}/graalvm-ce-${JAVA_VERSION}-linux-amd64-${GRAALVM_VERSION}.tar.gz" | |
# curl -sL $GRAALVM_TGZ_URI --output graalvm.tar.gz | |
# mkdir -p $TMP_GRAALVM_HOME | |
# tar -xf graalvm.tar.gz -C $TMP_GRAALVM_HOME --strip-components=1 | |
# chmod -R a+rwx $TMP_GRAALVM_HOME | |
# echo "PATH=$GRAALVM_HOME/bin:$PATH" >> $GITHUB_ENV | |
# echo "GRAALVM_HOME=$GRAALVM_HOME" >> $GITHUB_ENV | |
# echo "JAVA_HOME=$GRAALVM_HOME" >> $GITHUB_ENV | |
# env: | |
# GRAALVM_VERSION: 21.0.0 | |
# JAVA_VERSION: java11 | |
# - name: Install dependencies | |
# run: | | |
# gu install native-image | |
# curl -o lein https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein | |
# chmod a+x lein | |
# sudo ./lein version | |
# sudo apt-get update && sudo apt-get install -y upx | |
# - name: Fetch bundle | |
# run: | | |
# curl -L -o musl.tar.gz https://github.com/gradinac/musl-bundle-example/releases/download/v1.0/musl.tar.gz | |
# tar xvzf musl.tar.gz | |
# mv bundle /tmp/musl | |
# - name: Build musl-gcc | |
# run: | | |
# curl -o musl-${MUSL_VERSION}.tar.gz https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz | |
# tar xzvf musl-${MUSL_VERSION}.tar.gz | |
# cd musl-${MUSL_VERSION} | |
# ./configure --disable-shared --prefix=/tmp/musl | |
# make | |
# make install | |
# export PATH=$PATH:/tmp/musl/bin | |
# echo "PATH=/tmp/musl/bin:$PATH" >> $GITHUB_ENV | |
# env: | |
# MUSL_VERSION: 1.2.1 | |
# - name: Build static native-image | |
# run: | | |
# make OPTS="--static --libc=musl" valdcli | |
# # upx --lzma --best valdcli | |
# chmod a+x valdcli | |
# - name: Upload artifact | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: valdcli-linux-static | |
# path: ./valdcli | |
# build-macos: | |
# runs-on: macos-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: Install GraalVM | |
# run: | | |
# TMP_GRAALVM_HOME=/tmp/graalvm | |
# GRAALVM_HOME=/tmp/graalvm/Contents/Home | |
# GRAALVM_TGZ_URI="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${GRAALVM_VERSION}/graalvm-ce-${JAVA_VERSION}-darwin-amd64-${GRAALVM_VERSION}.tar.gz" | |
# curl -sL $GRAALVM_TGZ_URI --output graalvm.tar.gz | |
# mkdir -p $TMP_GRAALVM_HOME | |
# tar -xf graalvm.tar.gz -C $TMP_GRAALVM_HOME --strip-components=1 | |
# chmod -R a+rwx $TMP_GRAALVM_HOME | |
# echo "PATH=$GRAALVM_HOME/bin:$PATH" >> $GITHUB_ENV | |
# echo "GRAALVM_HOME=$GRAALVM_HOME" >> $GITHUB_ENV | |
# echo "JAVA_HOME=$GRAALVM_HOME" >> $GITHUB_ENV | |
# env: | |
# GRAALVM_VERSION: 21.0.0 | |
# JAVA_VERSION: java11 | |
# - name: Install dependencies | |
# run: | | |
# brew install leiningen | |
# gu install native-image | |
# brew install upx | |
# - name: Build native-image | |
# run: | | |
# make valdcli | |
# # upx --lzma --best valdcli | |
# chmod a+x valdcli | |
# - name: Upload artifact | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: valdcli-macos | |
# path: ./valdcli | |
# release: | |
# runs-on: ubuntu-latest | |
# needs: | |
# - build-linux | |
# - build-linux-static | |
# - build-macos | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: Create release | |
# if: startsWith( github.ref, 'refs/tags/') | |
# id: create_release | |
# uses: actions/create-release@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# tag_name: ${{ github.ref }} | |
# release_name: Release ${{ github.ref }} | |
# draft: false | |
# prerelease: false | |
# - name: mkdir | |
# if: startsWith( github.ref, 'refs/tags/') | |
# run: | | |
# mkdir -p tmp/linux | |
# mkdir -p tmp/linux-static | |
# mkdir -p tmp/macos | |
# - uses: actions/download-artifact@v3 | |
# if: startsWith( github.ref, 'refs/tags/') | |
# with: | |
# name: valdcli-linux | |
# path: tmp/linux | |
# - uses: actions/download-artifact@v3 | |
# if: startsWith( github.ref, 'refs/tags/') | |
# with: | |
# name: valdcli-linux-static | |
# path: tmp/linux-static | |
# - uses: actions/download-artifact@v3 | |
# if: startsWith( github.ref, 'refs/tags/') | |
# with: | |
# name: valdcli-macos | |
# path: tmp/macos | |
# - name: zip | |
# if: startsWith( github.ref, 'refs/tags/') | |
# run: | | |
# chmod a+x tmp/linux/valdcli | |
# chmod a+x tmp/linux-static/valdcli | |
# chmod a+x tmp/macos/valdcli | |
# zip --junk-paths valdcli-linux tmp/linux/valdcli | |
# zip --junk-paths valdcli-linux-static tmp/linux-static/valdcli | |
# zip --junk-paths valdcli-macos tmp/macos/valdcli | |
# - name: Upload Release Asset (linux) | |
# if: startsWith( github.ref, 'refs/tags/') | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# upload_url: ${{ steps.create_release.outputs.upload_url }} | |
# asset_path: ./valdcli-linux.zip | |
# asset_name: valdcli-linux.zip | |
# asset_content_type: application/zip | |
# - name: Upload Release Asset (linux-static) | |
# if: startsWith( github.ref, 'refs/tags/') | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# upload_url: ${{ steps.create_release.outputs.upload_url }} | |
# asset_path: ./valdcli-linux-static.zip | |
# asset_name: valdcli-linux-static.zip | |
# asset_content_type: application/zip | |
# - name: Upload Release Asset (macos) | |
# if: startsWith( github.ref, 'refs/tags/') | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# upload_url: ${{ steps.create_release.outputs.upload_url }} | |
# asset_path: ./valdcli-macos.zip | |
# asset_name: valdcli-macos.zip | |
# asset_content_type: application/zip |