# этап 1. name: build & test on: # Указываем ветки которые будут триггерить пайплайн pull_request: branches: ["release"] types: [closed] # Указываем триггер - опубликованный релиз release: types: [published] workflow_call: # позволяет запускать пайплайн вручную через вкладку Actions workflow_dispatch: # этап 2. jobs: build: if: ${{ github.event_name == 'release' || github.event_name == 'workflow_dispatch' || github.event.pull_request.merged == true }} runs-on: self-hosted steps: - name: Clone repository uses: actions/checkout@v4 with: ref: release # этап 3. - name: Move files to build deploy directory run: | mkdir -p ~/opt/development/frontend cp -r * ~/opt/development/frontend/ - name: Check if Docker is installed run: | if ! command -v docker &> /dev/null; then echo "Docker is not installed" exit 1 fi - name: Try to restart container run: | if [ -f ~/opt/development/docker/docker-compose.yml ]; then echo "docker-compose.yml found, restarting container" docker-compose -f ~/opt/development/docker/docker-compose.yml down docker-compose -f ~/opt/development/docker/docker-compose.yml up -d else echo "docker-compose.yml not found, skipping docker-compose commands" fi