From 38ba89b82f45de6e3b1a4c90b99b734e21312e47 Mon Sep 17 00:00:00 2001 From: Amirhossein Khalili Date: Thu, 14 May 2026 18:18:26 +0330 Subject: [PATCH] ci(frontend): add gitea actions pipeline --- .gitea/workflows/frontend.yml | 80 +++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .gitea/workflows/frontend.yml diff --git a/.gitea/workflows/frontend.yml b/.gitea/workflows/frontend.yml new file mode 100644 index 0000000..07e1d10 --- /dev/null +++ b/.gitea/workflows/frontend.yml @@ -0,0 +1,80 @@ +name: Frontend CI/CD + +on: + push: + branches: + - main + pull_request: + +permissions: + contents: read + +jobs: + build: + runs-on: qlockify-node + steps: + - name: Install system dependencies + run: | + apt-get update + apt-get install -y --no-install-recommends git + + - name: Checkout repository + env: + REPO_URL: ${{ gitea.server_url }}/${{ gitea.repository }}.git + REPO_SHA: ${{ gitea.sha }} + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} + WORKSPACE: ${{ gitea.workspace }} + run: | + mkdir -p "$WORKSPACE" + cd "$WORKSPACE" + git init + git remote add origin "$REPO_URL" + git -c http.extraHeader="Authorization: Bearer $GITEA_TOKEN" fetch --depth 1 origin "$REPO_SHA" + git checkout --detach FETCH_HEAD + + - name: Install dependencies + working-directory: ${{ gitea.workspace }} + run: npm ci + + - name: Lint frontend + working-directory: ${{ gitea.workspace }} + run: npm run lint + + - name: Build frontend + working-directory: ${{ gitea.workspace }} + run: npm run build + + deploy: + if: github.event_name == 'push' && github.ref_name == 'main' + needs: + - build + runs-on: qlockify-deploy + steps: + - name: Install SSH client + run: | + apt-get update + apt-get install -y --no-install-recommends bash openssh-client + + - name: Configure SSH + env: + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + SSH_KNOWN_HOSTS: ${{ secrets.SSH_KNOWN_HOSTS }} + run: | + install -m 700 -d ~/.ssh + printf '%s\n' "$SSH_PRIVATE_KEY" > ~/.ssh/id_ed25519 + chmod 600 ~/.ssh/id_ed25519 + printf '%s\n' "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts + chmod 644 ~/.ssh/known_hosts + + - name: Deploy frontend service + env: + DEPLOY_HOST: ${{ vars.DEPLOY_HOST }} + DEPLOY_PORT: ${{ vars.DEPLOY_PORT }} + DEPLOY_USER: ${{ vars.DEPLOY_USER }} + DEPLOY_PATH: ${{ vars.DEPLOY_PATH }} + DEPLOY_BRANCH: ${{ vars.DEPLOY_BRANCH }} + BACKEND_BRANCH: ${{ vars.BACKEND_BRANCH }} + FRONTEND_BRANCH: ${{ vars.FRONTEND_BRANCH }} + run: | + ssh -p "${DEPLOY_PORT:-22}" "${DEPLOY_USER}@${DEPLOY_HOST}" \ + "DEPLOY_ROOT='${DEPLOY_PATH}' DEPLOY_BRANCH='${DEPLOY_BRANCH}' BACKEND_BRANCH='${BACKEND_BRANCH}' FRONTEND_BRANCH='${FRONTEND_BRANCH}' bash '${DEPLOY_PATH}/scripts/deploy.sh' frontend"