This is an automated email from the ASF dual-hosted git repository.
yasith pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata.git
The following commit(s) were added to refs/heads/master by this push:
new c512da5a72 Add GitHub Actions Workflow for Maven Build and Docker
Image Push (#521)
c512da5a72 is described below
commit c512da5a72c2039fc4d4d86cff3e3af36e5968e4
Author: Yasindu Dissanayake <[email protected]>
AuthorDate: Fri Jun 20 23:18:32 2025 +0530
Add GitHub Actions Workflow for Maven Build and Docker Image Push (#521)
* Add Build Workflow
* Add Build Workflow
* Add Build Workflow
* Add Build Workflow
* Add cybershuttle as username and remove branch
* Remove trigger on push master
---
.github/workflows/build-and-publish.yml | 64 +++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+)
diff --git a/.github/workflows/build-and-publish.yml
b/.github/workflows/build-and-publish.yml
new file mode 100644
index 0000000000..1b48c60f65
--- /dev/null
+++ b/.github/workflows/build-and-publish.yml
@@ -0,0 +1,64 @@
+name: Maven Docker Build & Push
+
+on:
+ push:
+ tags:
+ - "v*"
+ release:
+ types: [published]
+
+env:
+ DOCKER_REGISTRY: docker.io
+ DOCKER_USERNAME: cybershuttle
+ VERSION: ${{ github.ref_name }}
+
+jobs:
+ build:
+ runs-on: ubuntu-22.04
+
+ steps:
+ - name: Install OS dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y build-essential automake bison flex
libboost-all-dev libevent-dev libssl-dev libtool pkg-config
+
+ - name: Set up Thrift 0.22.0
+ run: |
+ wget -q https://dlcdn.apache.org/thrift/0.22.0/thrift-0.22.0.tar.gz
+ tar -xzf thrift-0.22.0.tar.gz
+ cd thrift-0.22.0
+ ./configure --without-rs --enable-libs=no --enable-tests=no
+ make -j$(nproc)
+ sudo make install
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v4
+ with:
+ distribution: "temurin"
+ java-version: "17"
+
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Login to Docker Hub
+ uses: docker/login-action@v3
+ with:
+ username: ${{ secrets.DOCKER_HUB_USERNAME }}
+ password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
+
+ - name: Build with Maven (skip tests)
+ run: mvn clean install -DskipTests
+
+ - name: Build Docker Images
+ run: |
+ mvn docker:build -pl modules/distribution
+
+ - name: List Docker Images
+ run: docker images
+
+ - name: Tag and Push Images
+ run: |
+ for image in email-monitor participant post-wm pre-wm api-server
controller; do
+ docker tag airavata/$image
${DOCKER_USERNAME}/airavata-$image:${VERSION}
+ docker push ${DOCKER_USERNAME}/airavata-$image:${VERSION}
+ done