diff --git a/.github/workflows/java-test.yaml b/.github/workflows/java-test.yaml index a6743df3..cf36cd00 100644 --- a/.github/workflows/java-test.yaml +++ b/.github/workflows/java-test.yaml @@ -23,10 +23,6 @@ jobs: strategy: matrix: include: - - os: ubuntu-latest - classifier: linux-x86_64 - java: 8 - root-pom: 'pom.xml' - os: ubuntu-latest classifier: linux-aarch_64 java: 8 @@ -93,12 +89,77 @@ jobs: path: | java/target/classes/native + build-on-centos: + name: Build on CentOS 7 + runs-on: ubuntu-latest + container: + image: "centos:7" + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Test and Build + run: | + yum makecache + yum install -y centos-release-scl-rh centos-release-scl + yum install -y devtoolset-10-gcc devtoolset-10-gcc-c++ devtoolset-10-make + yum install -y wget + yum install -y epel-release + yum install -y llvm clang llvm-devel + yum install -y gcc + source /opt/rh/devtoolset-10/enable + gcc --version + cat /etc/os-release + + - name: Install Python 3 + run: | + yum install -y python3 python3-devel python3-pip + + - name: Install Rust + run: | + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + mv $HOME/.cargo/bin/* /usr/bin/ + rustc --version + cargo --version + + - name: Install Java and Maven + run: | + yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel + wget https://repo.huaweicloud.com/apache/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz + tar -xzf apache-maven-*.tar.gz + mkdir p /opt/maven + mv apache-maven-* /opt/maven + ln -s /opt/maven/apache-maven-3.9.6/bin/mvn /usr/bin/mvn + mvn --version + + - name: Verify installed versions + run: | + gcc --version + llvm-config --version + python3 --version + rustc --version + mvn --version + cat /etc/os-release + + - name: 'Build and Deploy' + shell: bash + working-directory: java + run: mvn clean package -DskipTests=true -Djni.classifier=linux-x86_64 -Dcargo-build.profile=release + + - name: 'Upload artifact' + uses: actions/upload-artifact@v3 + with: + name: kcl-lib-linux-x86_64 + path: java/target/classes/native + + deploy: runs-on: ubuntu-latest permissions: contents: read packages: write - needs: [ test ] + needs: [ test, build-on-centos ] steps: - uses: actions/checkout@v4 diff --git a/java/pom.xml b/java/pom.xml index 66a42bc9..44cf936f 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -5,7 +5,7 @@ com.kcl kcl-lib - 0.8.5 + 0.8.6-SNAPSHOT KCL Arifact Library for Java KCL is an open-source constraint-based record and functional language mainly