/
netmann
/
sso
Обзор
Документация
Войти
/
netmann
/
sso
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
.github/workflows/deploy.yaml
67 строк
3 KB
Alexxtn105
fixed deploy
19 май 2024, 17:11
19 май 2024, 17:11
3338478
Код
Авторство
О чём код?
name: Deploy SSO on: workflow_dispatch: inputs: tag: description: 'Tag to deploy' required: true jobs: deploy: runs-on: ubuntu-latest env: HOST: alexxtn@87.242.85.156 DEPLOY_DIRECTORY: /var/www/sso CONFIG_PATH: /var/www/sso/config/config_prod.yaml ENV_FILE_PATH: /var/www/sso/config.env steps: - name: Checkout repository uses: actions/checkout@v4.1.4 with: ref: ${{ github.event.inputs.tag }} - name: Check if tag exists run: | git fetch --all --tags if ! git tag | grep -q "^${{ github.event.inputs.tag }}$"; then echo "error: Tag '${{ github.event.inputs.tag }}' not found" exit 1 fi - name: Set up Go uses: actions/setup-go@v5.0.1 with: go-version: 1.21.6 - name: Build app run: | go mod download go build -o sso ./cmd/sso - name: Deploy to VM run: | sudo apt-get install -y ssh rsync echo "$DEPLOY_SSH_KEY" > deploy_key.pem chmod 600 deploy_key.pem ssh -i deploy_key.pem -o StrictHostKeyChecking=no ${{ env.HOST }} "mkdir -p ${{ env.DEPLOY_DIRECTORY }}" rsync -avz -e 'ssh -i deploy_key.pem -o StrictHostKeyChecking=no' --exclude='.git' ./ ${{ env.HOST }}:${{ env.DEPLOY_DIRECTORY }} env: DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }} - name: Remove old systemd service file run: | ssh -i deploy_key.pem -o StrictHostKeyChecking=no ${{ env.HOST }} "rm -f /etc/systemd/system/sso.service" - name: List workspace contents run: | echo "Listing deployment folder contents:" ls -la ${{ github.workspace }}/deployment - name: Create environment file on server run: | ssh -i deploy_key.pem -o StrictHostKeyChecking=no ${{ env.HOST }} "\ touch ${{ env.ENV_FILE_PATH }} && \ chmod 600 ${{ env.ENV_FILE_PATH }} && \ echo 'CONFIG_PATH=${{ env.CONFIG_PATH }}' > ${{ env.ENV_FILE_PATH }}" - name: Copy systemd service file run: | sudo scp -i deploy_key.pem -o StrictHostKeyChecking=no ${{ github.workspace }}/deployment/sso.service ${{ env.HOST }}:/tmp/sso.service ssh -i deploy_key.pem -o StrictHostKeyChecking=no ${{ env.HOST }} "mv /tmp/sso.service /etc/systemd/system/sso.service" - name: Start application run: | ssh -i deploy_key.pem -o StrictHostKeyChecking=no ${{ env.HOST }} "systemctl daemon-reload && systemctl restart sso.service"