48 lines
1.7 KiB
YAML
48 lines
1.7 KiB
YAML
name: Sync OpenAPI Spec
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'main'
|
|
- 'staging'
|
|
paths:
|
|
- 'api/openapi.yaml'
|
|
|
|
jobs:
|
|
sync-spec:
|
|
runs-on: [hubstaging]
|
|
steps:
|
|
- name: Check out repository code
|
|
uses: https://gitea.pena/PenaDevops/actions.git/checkout@v1
|
|
- name: Install SSH tools on Alpine
|
|
run: |
|
|
apk update
|
|
apk add --no-cache openssh-client
|
|
|
|
- name: Set Ssh key
|
|
run: |
|
|
mkdir -p ~/.ssh
|
|
echo "${{ secrets.CENTRAL_REPO_SSH_KEY }}" > ~/.ssh/deploy_key
|
|
chmod 600 ~/.ssh/deploy_key
|
|
ssh-keyscan -H gitea.pena >> ~/.ssh/known_hosts
|
|
|
|
- name: Push to Central Repo
|
|
run: |
|
|
ls ~/.ssh
|
|
# Для Gitea используем:
|
|
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
|
|
echo "Current branch: $CURRENT_BRANCH"
|
|
ssh-keygen -l -f ~/.ssh/deploy_key || echo "Key validation failed"
|
|
export GIT_SSH_COMMAND="ssh -i ~/.ssh/deploy_key -o IdentitiesOnly=yes"
|
|
# Клонируем центральный репозиторий используя SSH
|
|
git clone --depth 1 --single-branch --branch $BRANCH_NAME git@gitea.pena:PenaSide/docs.git
|
|
# Копируем файл, даём уникальное имя
|
|
cp api/openapi.yaml docs/$(echo "${{ gitea.repository }}" | tr '/' '-')-openapi.yaml
|
|
cd docs
|
|
git config user.name "Gitea Actions Bot"
|
|
git config user.email "actions-bot@example.com"
|
|
git add .
|
|
git commit -m "chore: update OpenAPI spec from ${{ gitea.repository }}"
|
|
# Пушим используя SSH
|
|
git push
|