ggs-cron/.forgejo/workflows/ci.yml

64 lines
2.2 KiB
YAML
Raw Normal View History

2025-08-06 16:50:04 +07:00
name: CI for GGS-CRON
on:
push:
branches:
- master
tags:
- 'v*'
- 'release-*'
jobs:
build-and-test:
runs-on: docker
container:
image: node:20-slim
steps:
2025-08-06 17:04:19 +07:00
- name: Checkout code
2025-08-06 17:30:54 +07:00
uses: actions/checkout@v4
2025-08-06 17:04:19 +07:00
- name: Set up timezone
run: |
apt-get update && apt-get install -y tzdata
ln -snf /usr/share/zoneinfo/Asia/Bangkok /etc/localtime
echo "Asia/Bangkok" > /etc/timezone
rm -rf /var/lib/apt/lists/*
2025-08-06 16:50:04 +07:00
- name: Cache npm dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
2025-08-06 17:04:19 +07:00
restore-keys: |
${{ runner.os }}-node-
2025-08-06 16:50:04 +07:00
- name: Install dependencies
run: npm install
2025-08-06 17:04:19 +07:00
- name: Run application
2025-08-06 16:50:04 +07:00
run: npm start
env:
2025-08-06 17:36:48 +07:00
GOOGLE_PRIVATE_KEY: ${{ secrets.GOOGLE_PRIVATE_KEY }}
2025-08-06 16:50:04 +07:00
GOOGLE_SERVICE_ACCOUNT_EMAIL: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }}
TEST_SHEET_ID: ${{ secrets.TEST_SHEET_ID }}
TB_THA_SHEET: ${{ secrets.TB_THA_SHEET }}
TB_MYS_SHEET: ${{ secrets.TB_MYS_SHEET }}
2025-08-06 17:04:19 +07:00
TB_SGP_SHEET: ${{ secrets.TB_SGP_SHEET }}
2025-08-06 16:50:04 +07:00
TB_UAE_SHEET: ${{ secrets.TB_UAE_SHEET }}
PORT: 36530
2025-08-06 17:04:19 +07:00
DEBUG: server:*
build-docker:
runs-on: docker
needs: build-and-test
steps:
- name: Checkout code
2025-08-06 17:30:54 +07:00
uses: actions/checkout@v4
2025-08-06 17:04:19 +07:00
- name: Build Docker image
run: docker build -t ggs-cron:${{ github.ref_name }} .
- name: Run Docker container
run: |
docker run --rm \
2025-08-06 17:36:48 +07:00
-e GOOGLE_PRIVATE_KEY=${{ secrets.GOOGLE_PRIVATE_KEY }} \
2025-08-06 17:04:19 +07:00
-e GOOGLE_SERVICE_ACCOUNT_EMAIL=${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }} \
-e TEST_SHEET_ID=${{ secrets.TEST_SHEET_ID }} \
-e TB_THA_SHEET=${{ secrets.TB_THA_SHEET }} \
-e TB_MYS_SHEET=${{ secrets.TB_MYS_SHEET }} \
-e TB_SGP_SHEET=${{ secrets.TB_SGP_SHEET }} \
-e TB_UAE_SHEET=${{ secrets.TB_UAE_SHEET }} \
-e PORT=36530 \
-e DEBUG=server:* \
ggs-cron:${{ github.ref_name }}