Compare commits
69 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc1fc4c55a | ||
|
|
5a46fef641 | ||
|
|
3987f24ec5 | ||
|
|
564a9a8a8d | ||
|
|
f73753742c | ||
|
|
697d307364 | ||
|
|
37601e2e18 | ||
|
|
a226f1623d | ||
|
|
8cde71829c | ||
|
|
8d7bc9c9b7 | ||
|
|
c507d7be06 | ||
|
|
71dd411dc6 | ||
|
|
2f8effe7e4 | ||
|
|
f1fc324828 | ||
|
|
208ad63abf | ||
|
|
c4a6b6d1df | ||
|
|
06b62df43a | ||
|
|
0908d6083d | ||
|
|
fcc1018f80 | ||
|
|
41dd23217c | ||
|
|
f708aec51a | ||
|
|
1556479de2 | ||
| 863e3d1c44 | |||
| 117170496a | |||
| 2099cd52c9 | |||
|
|
d3b839d58a | ||
| da40eeadee | |||
| cf04d96cd0 | |||
|
|
e7c1b49712 | ||
|
|
6089ee4979 | ||
|
|
2187d9f3e6 | ||
|
|
c82b2a622d | ||
|
|
b6037b2d92 | ||
| 7e446bcc80 | |||
| 60cc6fde85 | |||
| 1143e46ed0 | |||
|
|
7e5e286ebf | ||
|
|
59c9db4bf7 | ||
|
|
ba518de57e | ||
|
|
a17caac44d | ||
|
|
223d72830e | ||
|
|
ad027ca8b8 | ||
|
|
4fe6433607 | ||
|
|
c0be72b81a | ||
|
|
a3ce42bba7 | ||
|
|
33089d65ee | ||
|
|
913674ec15 | ||
|
|
e8e4447599 | ||
|
|
cef699cef0 | ||
| 19b96cf3f4 | |||
| 9ef85b8fd1 | |||
|
|
49f2e1bc4d | ||
| aeee164ade | |||
| f9e172b741 | |||
|
|
0b0cb45077 | ||
| c7024e02fc | |||
| e8970d370a | |||
| 43323269d1 | |||
| c77444c25d | |||
| fbe153b71a | |||
| 8db53a9422 | |||
| 51981d66e4 | |||
| 0e8eb089ae | |||
| 019449be92 | |||
| a7e6995570 | |||
| f83ca13cfc | |||
|
|
df98310995 | ||
| 40320d621a | |||
| a22edac8da |
3 changed files with 160 additions and 0 deletions
49
.forgejo/workflows/build.yml
Normal file
49
.forgejo/workflows/build.yml
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
name: Build
|
||||
|
||||
# on:
|
||||
# push:
|
||||
# tags:
|
||||
# - "v[0-9]+.[0-9]+.[0-9]+"
|
||||
# - "v[0-9]+.[0-9]+.[0-9]+*"
|
||||
# workflow_dispatch:
|
||||
|
||||
env:
|
||||
REGISTRY: ${{ vars.CONTAINER_REGISTRY }}
|
||||
REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }}
|
||||
REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
|
||||
CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }}/${{ vars.CONTAINER_IMAGE_NAME }}
|
||||
IMAGE_VERSION: build
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
with:
|
||||
config-inline: |
|
||||
[registry."${{ env.REGISTRY }}"]
|
||||
ca=["/etc/ssl/certs/ca-certificates.crt"]
|
||||
- name: Tag Version
|
||||
run: |
|
||||
if [[ "${{ github.event_name }}" == "push" ]]; then
|
||||
echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/v//g' >> $GITHUB_ENV
|
||||
else
|
||||
echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Login in to registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ env.REGISTRY_USERNAME }}
|
||||
password: ${{ env.REGISTRY_PASSWORD }}
|
||||
- name: Build and push docker image
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
platforms: linux/amd64
|
||||
context: .
|
||||
file: Dockerfile
|
||||
tags: ${{ env.CONTAINER_IMAGE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}:${{ env.IMAGE_VERSION }}
|
||||
push: true
|
||||
82
.forgejo/workflows/ci-cd.yml
Normal file
82
.forgejo/workflows/ci-cd.yml
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
name: Build & Deploy on Dev
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v[0-9]+.[0-9]+.[0-9]+"
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
REGISTRY: ${{ vars.CONTAINER_REGISTRY }}
|
||||
REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }}
|
||||
REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
|
||||
CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }}/${{ vars.CONTAINER_IMAGE_NAME }}
|
||||
IMAGE_VERSION: latest
|
||||
DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
with:
|
||||
config-inline: |
|
||||
[registry."${{ env.REGISTRY }}"]
|
||||
ca=["/etc/ssl/certs/ca-certificates.crt"]
|
||||
- name: Tag Version
|
||||
run: |
|
||||
if [ "${{ github.ref_type }}" == "tag" ]; then
|
||||
echo "IMAGE_VERSION=${{ github.ref_name }}" >> $GITHUB_ENV
|
||||
else
|
||||
echo "IMAGE_VERSION=latest" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Login in to registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ env.REGISTRY_USERNAME }}
|
||||
password: ${{ env.REGISTRY_PASSWORD }}
|
||||
- name: Build and push docker image
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
platforms: linux/amd64
|
||||
context: .
|
||||
file: Dockerfile
|
||||
tags: ${{ env.CONTAINER_IMAGE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}:${{ env.IMAGE_VERSION }}
|
||||
push: true
|
||||
- name: Remote Deploy
|
||||
uses: appleboy/ssh-action@v1.2.1
|
||||
with:
|
||||
host: ${{ vars.SSH_DEPLOY_HOST }}
|
||||
port: ${{ vars.SSH_DEPLOY_PORT }}
|
||||
username: ${{ secrets.SSH_DEPLOY_USER }}
|
||||
password: ${{ secrets.SSH_DEPLOY_PASSWORD }}
|
||||
script: |
|
||||
cd ~/repo
|
||||
./replace-env.sh API_EXAM "${{ env.IMAGE_VERSION }}"
|
||||
./deploy.sh hrms-api-exam
|
||||
|
||||
- name: Discord Notification
|
||||
if: always()
|
||||
run: |
|
||||
STATUS="${{ job.status == 'success' && '✅ Success' || '❌ Failed' }}"
|
||||
COLOR="${{ job.status == 'success' && '3066993' || '15158332' }}"
|
||||
TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
||||
curl -H "Content-Type: application/json" \
|
||||
-X POST \
|
||||
-d "{
|
||||
\"embeds\": [{
|
||||
\"title\": \"$STATUS\",
|
||||
\"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\",
|
||||
\"color\": $COLOR,
|
||||
\"footer\": {
|
||||
\"text\": \"Release Notification\",
|
||||
\"icon_url\": \"https://example.com/success-icon.png\"
|
||||
},
|
||||
\"timestamp\": \"$TIMESTAMP\"
|
||||
}]
|
||||
}" \
|
||||
${{ env.DISCORD_WEBHOOK }}
|
||||
29
.forgejo/workflows/deploy.yml
Normal file
29
.forgejo/workflows/deploy.yml
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
name: Build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: "Version to deploy"
|
||||
type: string
|
||||
required: false
|
||||
default: "latest"
|
||||
|
||||
env:
|
||||
IMAGE_VERSION: build
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Remote Deploy
|
||||
uses: appleboy/ssh-action@v1.2.1
|
||||
with:
|
||||
host: ${{ vars.SSH_DEPLOY_HOST }}
|
||||
port: ${{ vars.SSH_DEPLOY_PORT }}
|
||||
username: ${{ secrets.SSH_DEPLOY_USER }}
|
||||
password: ${{ secrets.SSH_DEPLOY_PASSWORD }}
|
||||
script: |
|
||||
cd ~/repo
|
||||
./replace-env.sh API_EXAM "${{ inputs.version }}"
|
||||
./deploy.sh hrms-api-exam
|
||||
Loading…
Add table
Add a link
Reference in a new issue