Added Offtiktokapi
This commit is contained in:
parent
16159ef4c4
commit
6fee4a697e
69
.gitea/workflows/offtiktokapi.yaml
Normal file
69
.gitea/workflows/offtiktokapi.yaml
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
name: offtiktokapi
|
||||||
|
run-name: offtiktokapi
|
||||||
|
env:
|
||||||
|
REPO_NAME: offtiktokapi
|
||||||
|
REMOTE_REPO: https://github.com/MarsHeer/offtiktokapi.git
|
||||||
|
BUILD_PLATFORM: linux/arm64
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 0 * * *" # at midnight
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- ".gitea/workflows/offtiktokapi.yaml"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: runner
|
||||||
|
container:
|
||||||
|
image: git.opnxng.com/opnxng/docker-buildx:latest
|
||||||
|
steps:
|
||||||
|
- name: Check latest upstream commit
|
||||||
|
run: |
|
||||||
|
STORED_COMMIT=$(curl -H "Authorization: Bearer ${{ secrets.NT }}" -s "https://nt.opnxng.com/${REPO_NAME}/raw?poll=1" | tail -n 1)
|
||||||
|
LATEST_COMMIT=$(git ls-remote ${REMOTE_REPO} | awk '{print $1}' | head -1)
|
||||||
|
echo "STORED_COMMIT=${STORED_COMMIT}" >> "$GITHUB_ENV"
|
||||||
|
echo "LATEST_COMMIT=${LATEST_COMMIT}" >> "$GITHUB_ENV"
|
||||||
|
echo "Stored Commit: ${STORED_COMMIT}"
|
||||||
|
echo "Latest Commit: ${LATEST_COMMIT}"
|
||||||
|
|
||||||
|
- name: Build and push Docker image
|
||||||
|
run: |
|
||||||
|
if [ "$STORED_COMMIT" != "$LATEST_COMMIT" ]; then
|
||||||
|
echo "Found a new commit, building new image"
|
||||||
|
# Create and use Docker Buildx builder
|
||||||
|
docker buildx create --use --name buildx
|
||||||
|
# Login to Package Registry
|
||||||
|
echo "${{ secrets.TOKEN }}" | docker login git.opnxng.com -u ${{ gitea.repository_owner }} --password-stdin
|
||||||
|
# Build and push Docker image
|
||||||
|
mkdir temp
|
||||||
|
cd temp
|
||||||
|
git clone ${REMOTE_REPO} .
|
||||||
|
# Create .env file
|
||||||
|
echo 'DATABASE_URL="file:../prisma/dev.db"' > .env
|
||||||
|
# Switch to node:slim as base image
|
||||||
|
curl -JL https://git.opnxng.com/opnxng/docker-images/raw/branch/main/dockerfiles/offtiktokapi.Dockerfile -o Dockerfile
|
||||||
|
docker buildx build \
|
||||||
|
--platform ${BUILD_PLATFORM} \
|
||||||
|
-t git.opnxng.com/${{ gitea.repository_owner }}/${REPO_NAME}:latest \
|
||||||
|
-f ./Dockerfile \
|
||||||
|
--push . && \
|
||||||
|
curl -H prio:low -d "Built and pushed ${REPO_NAME}" https://ntfy.opnxng.com/build || \
|
||||||
|
{ curl -H tags:warning -H prio:high -d "Built and pushed ${REPO_NAME} failed!" https://ntfy.opnxng.com/build ; exit 1; }
|
||||||
|
# Remove Docker Buildx builder
|
||||||
|
docker buildx rm buildx
|
||||||
|
else
|
||||||
|
echo "No new commit, skipped build"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Update stored commit
|
||||||
|
run: |
|
||||||
|
if [ "$STORED_COMMIT" != "$LATEST_COMMIT" ]; then
|
||||||
|
curl -H "Authorization: Bearer ${{ secrets.NT }}" -d $(git ls-remote ${REMOTE_REPO} | awk '{print $1}' | head -1) "https://nt.opnxng.com/${REPO_NAME}"
|
||||||
|
STORED_COMMIT=$(curl -H "Authorization: Bearer ${{ secrets.NT }}" -s "https://nt.opnxng.com/${REPO_NAME}/raw?poll=1" | tail -n 1)
|
||||||
|
echo "STORED_COMMIT=${STORED_COMMIT}" >> "$GITHUB_ENV"
|
||||||
|
else
|
||||||
|
curl -H "Authorization: Bearer ${{ secrets.NT }}" -d $(git ls-remote ${REMOTE_REPO} | awk '{print $1}' | head -1) "https://nt.opnxng.com/${REPO_NAME}"
|
||||||
|
STORED_COMMIT=$(curl -H "Authorization: Bearer ${{ secrets.NT }}" -s "https://nt.opnxng.com/${REPO_NAME}/raw?poll=1" | tail -n 1)
|
||||||
|
echo "STORED_COMMIT=${STORED_COMMIT}" >> "$GITHUB_ENV"
|
||||||
|
exit 1
|
||||||
|
fi
|
30
dockerfiles/offtiktokapi.Dockerfile
Normal file
30
dockerfiles/offtiktokapi.Dockerfile
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# Use an official Node.js slim base image
|
||||||
|
FROM node:slim
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
openssl \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Set environment variables
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
# Create app directory
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
# Copy project files
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Install project dependencies
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
# Build the project
|
||||||
|
RUN npx prisma generate && npx prisma migrate dev
|
||||||
|
|
||||||
|
RUN npx tsc --noEmit
|
||||||
|
|
||||||
|
|
||||||
|
# Expose the port the app runs on
|
||||||
|
EXPOSE 2000
|
||||||
|
|
||||||
|
# Define the command to run the application
|
||||||
|
CMD ["npm", "run", "start"]
|
Loading…
Reference in New Issue
Block a user