name: Update OneClickInstall DocSpace run-name: > Update DocSpace from older versions on: schedule: - cron: '00 20 * * 6' # At 23:00 on Saturday. workflow_dispatch: inputs: centos8s: type: boolean description: 'CentOS 8 Stream' default: true centos9s: type: boolean description: 'CentOS 9 Stream' default: true debian11: type: boolean description: 'Debian 11' default: true debian12: type: boolean description: 'Debian 12' default: true ubuntu2004: type: boolean description: 'Ubuntu 20.04' default: true ubuntu2204: type: boolean description: 'Ubuntu 22.04' default: true jobs: prepare: runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - name: Set matrix names id: set-matrix run: | matrix=$(echo '{ "include": [ {"execute": '${{ github.event.inputs.centos8s || true }}', "name": "CentOS8S", "os": "centos8s", "distr": "onlyoffice"}, {"execute": '${{ github.event.inputs.centos9s || true }}', "name": "CentOS9S", "os": "centos9s", "distr": "onlyoffice"}, {"execute": '${{ github.event.inputs.debian11 || true }}', "name": "Debian11", "os": "debian11", "distr": "onlyoffice"}, {"execute": '${{ github.event.inputs.debian12 || true }}', "name": "Debian12", "os": "debian12", "distr": "onlyoffice"}, {"execute": '${{ github.event.inputs.ubuntu2004 || true }}', "name": "Ubuntu20.04", "os": "ubuntu2004", "distr": "onlyoffice"}, {"execute": '${{ github.event.inputs.ubuntu2204 || true }}', "name": "Ubuntu22.04", "os": "ubuntu2204", "distr": "onlyoffice"} ] }' | jq -c '{include: [.include[] | select(.execute == true)]}') echo "matrix=${matrix}" >> $GITHUB_OUTPUT update-boxes: name: "Update DocSpace on ${{ matrix.name}}" runs-on: ubuntu-22.04 needs: prepare strategy: fail-fast: false matrix: ${{fromJSON(needs.prepare.outputs.matrix)}} steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Python 3. uses: actions/setup-python@v5 with: python-version: '3.x' - name: Free Disk Space run: | sudo rm -rf /usr/local/lib/android /opt/ghc sudo docker image prune --all --force - name: Get update and install vagrant run: | set -eux sudo apt update -y sudo apt install vagrant virtualbox -y - name: Testing with update ${{matrix.name}} if: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} uses: nick-fields/retry@v3 with: max_attempts: 1 timeout_minutes: 60 retry_on: error command: | cd ./tests/vagrant set -eux TEST_CASE='--local-install' \ DISTR='${{matrix.distr}}' \ RAM='5100' \ CPU='3' \ OS='docspace-${{ matrix.os }}' \ DOWNLOAD_SCRIPT='-ds false' \ TEST_REPO='-tr true' \ ARGUMENTS="-arg '--skiphardwarecheck true --makeswap false --localscripts true --update true'" \ vagrant up sleep 10 vagrant destroy --force on_retry_command: | set -eux echo "Clean-up and one more try" cd ./tests/vagrant vagrant destroy --force