2025-01-10 08:37:03 +07:00
|
|
|
name: Setup Docker Action
|
2025-01-09 17:59:35 +07:00
|
|
|
on:
|
|
|
|
push:
|
2025-01-16 10:02:58 +07:00
|
|
|
branches:
|
2025-01-16 09:57:26 +07:00
|
|
|
- main
|
2025-01-16 09:53:49 +07:00
|
|
|
- dev
|
2025-01-16 10:02:58 +07:00
|
|
|
- feature/*
|
2025-01-09 17:59:35 +07:00
|
|
|
jobs:
|
2025-01-10 08:37:03 +07:00
|
|
|
setup_docker:
|
2025-01-15 08:54:15 +07:00
|
|
|
if: contains(github.event.head_commit.message, '@docker')
|
2025-01-09 17:59:35 +07:00
|
|
|
runs-on: self-hosted
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
python:
|
|
|
|
- 3.12.7
|
2025-01-16 10:06:20 +07:00
|
|
|
|
2025-01-09 17:59:35 +07:00
|
|
|
steps:
|
2025-01-10 09:37:07 +07:00
|
|
|
- name: Fix Permission
|
|
|
|
run: |
|
|
|
|
sudo chown -R $(whoami):$(whoami) /home/$(whoami)/actions-runner && \
|
|
|
|
sudo chmod -R 755 /home/$(whoami)/actions-runner
|
2025-01-10 13:57:47 +07:00
|
|
|
|
2025-01-09 18:16:06 +07:00
|
|
|
- name: Checkout Repository
|
|
|
|
uses: actions/checkout@v4
|
2025-01-09 17:59:35 +07:00
|
|
|
with:
|
2025-01-09 18:16:06 +07:00
|
|
|
ref: ${{ github.ref_name }}
|
2025-01-10 10:10:06 +07:00
|
|
|
- name: Clean up Virtual Environment
|
|
|
|
run: ./setup/clean_up_virtualenvs.sh 0
|
|
|
|
|
2025-01-09 18:16:06 +07:00
|
|
|
- name: Create Virtual Environment
|
2025-01-10 09:47:19 +07:00
|
|
|
run: pyenv virtualenv "${{ github.ref_name }}-$(git rev-parse --short "$GITHUB_SHA")"
|
2025-01-09 18:16:06 +07:00
|
|
|
|
2025-01-09 18:08:37 +07:00
|
|
|
- name: Install dotenv
|
2025-01-09 18:24:34 +07:00
|
|
|
run: pip install python-dotenv
|
2025-01-09 18:16:06 +07:00
|
|
|
|
|
|
|
- name: Update Tag
|
|
|
|
run: make update_tag CURR_BRANCH=${{ github.ref_name }}
|
|
|
|
|
2025-01-09 17:59:35 +07:00
|
|
|
- name: Stop Server Docker
|
2025-01-09 18:03:11 +07:00
|
|
|
run: make stop_server_docker
|
2025-01-09 18:16:06 +07:00
|
|
|
|
2025-01-09 17:59:35 +07:00
|
|
|
- name: Generate Config
|
2025-01-14 18:08:41 +07:00
|
|
|
run: make gen_config_docker
|
2025-01-09 18:16:06 +07:00
|
|
|
|
2025-01-09 17:59:35 +07:00
|
|
|
- name: Build Image
|
2025-01-09 18:03:11 +07:00
|
|
|
run: make build_image
|
2025-01-09 18:16:06 +07:00
|
|
|
|
2025-01-09 17:59:35 +07:00
|
|
|
- name: Start Server
|
2025-01-09 18:03:11 +07:00
|
|
|
run: make run_server_docker
|
2025-01-10 08:37:03 +07:00
|
|
|
- name: Sleep for 30 seconds
|
|
|
|
run: sleep 30s
|
2025-01-10 08:43:17 +07:00
|
|
|
|
2025-01-09 17:59:35 +07:00
|
|
|
- name: Restore Database
|
2025-01-16 09:38:47 +07:00
|
|
|
run: make restore_database_docker
|
2025-01-09 18:16:06 +07:00
|
|
|
|
2025-01-09 18:03:11 +07:00
|
|
|
- name: Run Tests
|
|
|
|
run: make run_test_docker
|
2025-01-09 18:33:32 +07:00
|
|
|
|
|
|
|
- name: Login Docker hub
|
2025-01-10 08:43:17 +07:00
|
|
|
run: echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USER }} --password-stdin ${{ secrets.DOCKER_HUB }}
|
2025-01-09 17:59:35 +07:00
|
|
|
- name: Push Image
|
2025-01-09 18:03:11 +07:00
|
|
|
run: make push_image
|
2025-01-09 18:33:32 +07:00
|
|
|
|
2025-01-09 18:03:11 +07:00
|
|
|
- name: Clean Up
|
|
|
|
run: make clean_up
|