Merge pull request #17 from fan9704/feat_network_service #14
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
#Workflow name | |
name: Master CI/CD Pipeline | |
on: | |
#Manually trigger workflow runs | |
workflow_dispatch: | |
#Trigger the workflow on push from the main branch | |
push: | |
branches: | |
- master | |
jobs: | |
#Test's job | |
tests: | |
name: Unit tests | |
#Run on Ubuntu using the latest version | |
runs-on: ubuntu-latest | |
env: | |
ENV: "prod" | |
#Job's steps | |
steps: | |
#Check-out your repository under $GITHUB_WORKSPACE, so your workflow can access it | |
- name: Checkout Code | |
uses: actions/checkout@v3 | |
- name: Create env file | |
run: | | |
echo "${{ env.ENV_FILE }}" > .env | |
source .env | |
# Start MongoDB | |
- name: Start MongoDB | |
uses: supercharge/[email protected] | |
with: | |
mongodb-replica-set: test-rs | |
mongodb-port: 27017 | |
mongodb-username: test | |
mongodb-password: 123456 | |
mongodb-db: network | |
#Set up JDK 17 | |
- name: Set up JDK | |
uses: actions/setup-java@v1 | |
with: | |
java-version: '17' | |
#Set up Maven cache | |
- name: Cache Maven packages | |
#This action allows caching dependencies and build outputs to improve workflow execution time. | |
uses: actions/cache@v1 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
# #Migrate Database | |
# - name: Migrate Database | |
# run: mvn flyway:migrate | |
#Run Tests | |
- name: Run Tests | |
run: mvn -B test | |
# Pack Application | |
- name: build mvn package | |
run: mvn clean package | |
# Build Docker Image | |
- name: DockerHub Login | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Build the Docker image | |
run: docker build . --file Dockerfile --tag ${{ secrets.DOCKERHUB_USERNAME }}/iptable_controller_backend:latest | |
- name: Docker Push | |
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/iptable_controller_backend |