ggs-cron/.forgejo/workflows/ci.yml
Ittipat Lusuk 93b1f1276f
Some checks failed
CI for GGS-CRON / build-docker (push) Has been cancelled
CI for GGS-CRON / build-and-test (push) Has been cancelled
Updated ci.yml
2025-08-06 17:36:48 +07:00

64 lines
No EOL
2.2 KiB
YAML

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:
- name: Checkout code
uses: actions/checkout@v4
- 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/*
- name: Cache npm dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install dependencies
run: npm install
- name: Run application
run: npm start
env:
GOOGLE_PRIVATE_KEY: ${{ secrets.GOOGLE_PRIVATE_KEY }}
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 }}
TB_SGP_SHEET: ${{ secrets.TB_SGP_SHEET }}
TB_UAE_SHEET: ${{ secrets.TB_UAE_SHEET }}
PORT: 36530
DEBUG: server:*
build-docker:
runs-on: docker
needs: build-and-test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build Docker image
run: docker build -t ggs-cron:${{ github.ref_name }} .
- name: Run Docker container
run: |
docker run --rm \
-e GOOGLE_PRIVATE_KEY=${{ secrets.GOOGLE_PRIVATE_KEY }} \
-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 }}