Skip to content

Commit 972445d

Browse files
authored
Add GitHub Actions workflow for Spring Cloud build deployment
Signed-off-by: Ryan Baxter <[email protected]>
1 parent 98db826 commit 972445d

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

.github/workflows/deploy.yml

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
name: Spring Cloud Build
2+
3+
on:
4+
# Equivalent to GitHub Push Trigger
5+
push:
6+
branches:
7+
- main
8+
9+
# Equivalent to Timer Trigger (H H * * * = once daily)
10+
schedule:
11+
- cron: '0 0 * * *' # Runs at midnight UTC daily
12+
13+
# Manual trigger to replicate the BRANCH parameter
14+
workflow_dispatch:
15+
inputs:
16+
branch:
17+
description: 'Which branch should be built'
18+
required: true
19+
default: 'main'
20+
type: string
21+
22+
env:
23+
BRANCH: ${{ github.event.inputs.branch || github.ref_name }}
24+
25+
jobs:
26+
build:
27+
runs-on: ubuntu-latest
28+
timeout-minutes: 60 # Adjust based on your needs
29+
30+
steps:
31+
- name: Checkout code
32+
uses: actions/checkout@v5
33+
with:
34+
ref: ${{ env.BRANCH }}
35+
clean: true # Equivalent to WipeWorkspace extension
36+
37+
- name: Set up JDK 17
38+
uses: actions/setup-java@v4
39+
with:
40+
java-version: '17'
41+
distribution: 'temurin' # OpenJDK distribution
42+
cache: 'maven'
43+
44+
- name: Docker login
45+
env:
46+
DOCKER_HUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
47+
DOCKER_HUB_PASSWORD: ${{ secrets.DDOCKERHUB_TOKEN }}
48+
run: |
49+
echo "Logging to Dockerhub..."
50+
echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USERNAME" --password-stdin
51+
52+
- name: Stop running Docker containers
53+
continue-on-error: true
54+
run: |
55+
#!/bin/bash
56+
if command -v timeout &> /dev/null; then
57+
timeout 10s docker ps -a -q | xargs -n 1 -P 8 -I {} docker stop {} || echo "Failed to stop docker... Hopefully you know what you're doing"
58+
fi
59+
60+
- name: Create Maven settings.xml
61+
run: |
62+
mkdir -p $HOME/.m2
63+
cat > $HOME/.m2/settings.xml << 'EOF'
64+
<?xml version="1.0" encoding="UTF-8"?>
65+
<settings>
66+
<servers>
67+
<server>
68+
<id>artifactory</id>
69+
<username>${env.ARTIFACTORY_USERNAME}</username>
70+
<password>${env.ARTIFACTORY_PASSWORD}</password>
71+
</server>
72+
</servers>
73+
</settings>
74+
EOF
75+
env:
76+
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
77+
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
78+
79+
- name: Verify Maven installation
80+
run: ./mvnw --version
81+
82+
- name: Build and deploy
83+
env:
84+
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
85+
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
86+
run: ./mvnw clean deploy -Pdocs,deploy,spring -B -U
87+

0 commit comments

Comments
 (0)