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: Show version and changelogs from all plugins run: | find plugins -type f -name "*.js" -exec sh -c 'echo "From file: {}"; awk "/version:/{flag=1} flag{print} /]/||/}/{flag=0}" "{}" | sed -n "/version:/,/]/p"' \; # - 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: Install Docker CLI # uses: https://github.com/docker/setup-docker-action@v4 # uses: docker/setup-docker-action@v4 run: | apt-get update apt-get install -y docker.io which docker - name: docker which run: /usr/sbin/dockerd & - name: Log in to Forgejo Docker Registry run: | echo "${{ secrets.ACCESS_TOKEN }}" | docker login pakin-inspiron-15-3530.tail110d9.ts.net -u "${{ secrets.DOCKER_USER }}" --password-stdin - name: Create .env file run: | cat > app/.env << EOF 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 }} EOF - name: Build Docker image run: | IMAGE_NAME=pakin-inspiron-15-3530.tail110d9.ts.net/pakin/ggs-cron:${{ github.ref_name }} /usr/bin/docker build -t $IMAGE_NAME . echo "IMAGE_NAME=$IMAGE_NAME" >> $GITHUB_ENV - name: Push Docker image run: /usr/bin/docker push $IMAGE_NAME # - 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 }}