#github #devops #github-actions
Вопрос:
Мой рабочий процесс laravel:
name: Laravel on: push: branches: [ productionServer ] jobs: create-deployment-artifacts: name: Create deployment artifacts runs-on: ubuntu-latest outputs: deployment-matrix: ${{ steps.export-deployment-matrix.outputs.deployment-matrix }} steps: - uses: actions/checkout@v2 - name: Create deployment artifact env: GITHUB_SHA: ${{ github.sha }} run: tar -czf ${GITHUB_SHA}.tar.gz * - name: Store artifact for distribution uses: actions/upload-artifact@v2 with: name: app-build path: ${{ github.sha }}.tar.gz - name: Export deployment matrix id: export-deployment-matrix run: | CFG=$(echo $(cat server_config.json) | sed 's/ //g') echo "::set-output name=deployment-matrix::$CFG" prepare-release-on-server: name: "${{ matrix.server.name }}: Prepare release" runs-on: ubuntu-latest needs: create-deployment-artifacts strategy: matrix: server: ${{ fromJson(needs.create-deployment-artifacts.outputs.deployment-matrix) }}
Server_config.json
[ { "name": "Demo", "ip": "13.18.34.211", "username": "ubuntu", "password": "asdhnasdjia9si8d989sdkjsjd_sdu89ds", "dbName": "demoDB", "dbPassword": "demo", "appUrl": "https://Demo.com/", "port": "22", "beforeHooks": "echo done", "afterHooks": "echo done", "path": "/var/www/html/Demo" } ]
Вывод в рабочем процессе github:
Я хочу, чтобы этот рабочий процесс извлек конфигурацию моего сервера из server_config и обновил ее в матрице, чтобы я мог развернуть свой исходный код на нескольких серверах за один запуск.
Комментарии:
1. Жалоба указывает на строку 17 файла YML, которая содержит строку:
server: ${{ fromJson(needs.create-deployment-artifacts.outputs.deployment-matrix) }}
. В жалобе далее говорится, что существует недопустимый JSON. Я не уверен, что ларавель делает с этой строкой, но это то, где нужно искать. (Это не имеет никакого отношения к Git.)