Release #933
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: 'Release' | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| git_ref: | |
| description: git ref, branch or tag to test against | |
| required: false | |
| type: string | |
| sd-images: | |
| type: boolean | |
| description: 'Build/test SD images?' | |
| required: false | |
| default: true | |
| lxd: | |
| type: boolean | |
| description: 'Build/test LXD image?' | |
| required: false | |
| default: true | |
| installer: | |
| type: boolean | |
| description: 'Run curl-installer/upgrade tests?' | |
| required: false | |
| default: true | |
| release: | |
| type: boolean | |
| description: 'Release images to GH' | |
| required: false | |
| default: false | |
| test_image_url: | |
| type: string | |
| description: 'URL for test image to test instead of actual armbian builds' | |
| required: false | |
| default: '' | |
| push: | |
| tags: | |
| - "v*" | |
| branches: | |
| - master | |
| permissions: | |
| contents: write | |
| jobs: | |
| lxd-x86: | |
| if: ${{ inputs.lxd || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| uses: ./.github/workflows/build-lxd.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| arch: 'x86' | |
| secrets: inherit | |
| lxd-arm64: | |
| if: ${{ inputs.lxd || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| uses: ./.github/workflows/build-lxd.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| arch: 'arm64' | |
| secrets: inherit | |
| test-curl-installer: | |
| if: ${{ inputs.installer || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| uses: ./.github/workflows/vm-tests.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| secrets: inherit | |
| raspberrypi: | |
| if: ${{ inputs.sd-images || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| uses: ./.github/workflows/build-sd-images.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| board_id: rpi4b | |
| board_name: RaspberryPi 4+ | |
| secrets: inherit | |
| armbian-test-image: | |
| if: ${{ inputs.test_image_url != '' }} | |
| uses: ./.github/workflows/build-sd-images.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| board_id: testimage | |
| board_name: TestImage | |
| test_image_url: "${{ inputs.test_image_url }}" | |
| secrets: inherit | |
| # TODO: Fix 32bit armbian images | |
| odroidxu4: | |
| # if: ${{ inputs.sd-images || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| if: ${{ false }} | |
| uses: ./.github/workflows/build-sd-images.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| board_id: odroidxu4 | |
| board_name: OdroidHC2 | |
| secrets: inherit | |
| rockpro64: | |
| if: ${{ inputs.sd-images || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| uses: ./.github/workflows/build-sd-images.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| board_id: rockpro64 | |
| board_name: RockPro64 | |
| secrets: inherit | |
| rock64: | |
| if: ${{ inputs.sd-images || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| uses: ./.github/workflows/build-sd-images.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| board_id: rock64 | |
| board_name: Rock64 | |
| secrets: inherit | |
| # TODO: Fix 32bit armbian images | |
| bananapi: | |
| # if: ${{ inputs.sd-images || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| if: ${{ false }} | |
| uses: ./.github/workflows/build-sd-images.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| board_id: bananapi | |
| board_name: BananaPi | |
| secrets: inherit | |
| odroidhc4: | |
| if: ${{ inputs.sd-images || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| uses: ./.github/workflows/build-sd-images.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| board_id: odroidhc4 | |
| board_name: OdroidHC4 | |
| secrets: inherit | |
| odroidc4: | |
| if: ${{ inputs.sd-images || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| uses: ./.github/workflows/build-sd-images.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| board_id: odroidc4 | |
| board_name: OdroidC4 | |
| secrets: inherit | |
| odroidc2: | |
| if: ${{ inputs.sd-images || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| uses: ./.github/workflows/build-sd-images.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| board_id: odroidc2 | |
| board_name: OdroidC2 | |
| secrets: inherit | |
| orangepi5: | |
| if: ${{ inputs.sd-images || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| uses: ./.github/workflows/build-sd-images.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| board_id: orangepi5 | |
| board_name: OrangePi5 | |
| secrets: inherit | |
| orangepi5plus: | |
| if: ${{ inputs.sd-images || ( github.event_name != 'workflow_dispatch' && !startsWith(github.ref_name, 'docker-') ) }} | |
| uses: ./.github/workflows/build-sd-images.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| board_id: orangepi5-plus | |
| board_name: OrangePi5Plus | |
| secrets: inherit | |
| lxd-x86-release: | |
| needs: | |
| - github-release | |
| - lxd-x86 | |
| if: ${{ inputs.lxd || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.lxd-x86.outputs.lxd_artifact_name }}" | |
| artifact_file: "${{ needs.lxd-x86.outputs.lxd_artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| lxd-arm64-release: | |
| needs: | |
| - github-release | |
| - lxd-arm64 | |
| if: ${{ inputs.lxd || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.lxd-arm64.outputs.lxd_artifact_name }}" | |
| artifact_file: "${{ needs.lxd-arm64.outputs.lxd_artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| lxc-x86-release: | |
| needs: | |
| - github-release | |
| - lxd-x86 | |
| if: ${{ inputs.lxd || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.lxd-x86.outputs.lxc_artifact_name }}" | |
| artifact_file: "${{ needs.lxd-x86.outputs.lxc_artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| lxc-arm64-release: | |
| needs: | |
| - github-release | |
| - lxd-arm64 | |
| if: ${{ inputs.lxd || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.lxd-arm64.outputs.lxc_artifact_name }}" | |
| artifact_file: "${{ needs.lxd-arm64.outputs.lxc_artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| raspberrypi-release: | |
| needs: | |
| - raspberrypi | |
| - github-release | |
| if: ${{ inputs.sd-images || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.raspberrypi.outputs.artifact_name }}" | |
| artifact_file: "${{ needs.raspberrypi.outputs.artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| secrets: inherit | |
| odroidxu4-release: | |
| needs: | |
| - odroidxu4 | |
| - github-release | |
| if: ${{ inputs.sd-images || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.odroidxu4.outputs.artifact_name }}" | |
| artifact_file: "${{ needs.odroidxu4.outputs.artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| secrets: inherit | |
| rockpro64-release: | |
| needs: | |
| - rockpro64 | |
| - github-release | |
| if: ${{ inputs.sd-images || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.rockpro64.outputs.artifact_name }}" | |
| artifact_file: "${{ needs.rockpro64.outputs.artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| secrets: inherit | |
| rock64-release: | |
| needs: | |
| - rock64 | |
| - github-release | |
| if: ${{ inputs.sd-images || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.rock64.outputs.artifact_name }}" | |
| artifact_file: "${{ needs.rock64.outputs.artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| secrets: inherit | |
| bananapi-release: | |
| needs: | |
| - bananapi | |
| - github-release | |
| if: ${{ inputs.sd-images || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.bananapi.outputs.artifact_name }}" | |
| artifact_file: "${{ needs.bananapi.outputs.artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| secrets: inherit | |
| odroidhc4-release: | |
| needs: | |
| - odroidhc4 | |
| - github-release | |
| if: ${{ inputs.sd-images || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.odroidhc4.outputs.artifact_name }}" | |
| artifact_file: "${{ needs.odroidhc4.outputs.artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| secrets: inherit | |
| odroidc4-release: | |
| needs: | |
| - odroidc4 | |
| - github-release | |
| if: ${{ inputs.sd-images || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.odroidc4.outputs.artifact_name }}" | |
| artifact_file: "${{ needs.odroidc4.outputs.artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| secrets: inherit | |
| odroidc2-release: | |
| needs: | |
| - odroidc2 | |
| - github-release | |
| if: ${{ inputs.sd-images || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.odroidc2.outputs.artifact_name }}" | |
| artifact_file: "${{ needs.odroidc2.outputs.artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| secrets: inherit | |
| orangepi5-release: | |
| needs: | |
| - orangepi5 | |
| - github-release | |
| if: ${{ inputs.sd-images || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.orangepi5.outputs.artifact_name }}" | |
| artifact_file: "${{ needs.orangepi5.outputs.artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| secrets: inherit | |
| orangepi5plus-release: | |
| needs: | |
| - orangepi5plus | |
| - github-release | |
| if: ${{ inputs.sd-images || github.event_name != 'workflow_dispatch' }} | |
| uses: ./.github/workflows/publish-image.yml | |
| with: | |
| git_ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| artifact_id: "${{ needs.orangepi5plus.outputs.artifact_name }}" | |
| artifact_file: "${{ needs.orangepi5plus.outputs.artifact_file }}" | |
| dry_run: ${{ (!inputs.release && github.event_name == 'workflow_dispatch') || github.ref_type != 'tag' || !(github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| secrets: inherit | |
| github-release: | |
| if: ${{ github.event_name == 'workflow_dispatch' || !startsWith(github.ref_name, 'docker-') }} | |
| needs: | |
| - test-curl-installer | |
| runs-on: ubuntu-latest | |
| env: | |
| UID: "${{ github.run_id }}-rpi" | |
| VERSION: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| defaults: | |
| run: | |
| shell: bash | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| with: | |
| ref: "${{ inputs.git_ref || github.head_ref || github.ref_name }}" | |
| - name: Debug output | |
| run: | | |
| echo "do release?: ${{ inputs.release }}" | |
| echo "event name: ${{ github.event_name }}" | |
| echo "ref type: ${{ github.ref_type }}" | |
| echo "protected?: ${{ github.ref_protected }}" | |
| - name: Create Draft | |
| if: ${{ (inputs.release || github.event_name != 'workflow_dispatch') && github.ref_type == 'tag' && (github.ref_protected || startsWith(github.ref, 'refs/tags/v')) }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| NC_VERSION="$(jq -r '.nextcloud_version' < etc/ncp.cfg)" | |
| PHP_VERSION="$(jq -r '.php_version' < etc/ncp.cfg)" | |
| DEBIAN_VERSION="$(jq -r '.release' < etc/ncp.cfg)" | |
| ARMBIAN_VERSIOn="$(cat build/armbian/armbian_version)" | |
| subject="$(git tag -n10 --format="%(contents:subject)" "${{ env.VERSION }}")" | |
| body="$(git tag -n30 --format="%(contents:body)" "${{ env.VERSION }}")" | |
| separator=" | |
| --- | |
| " | |
| gh release create --draft -F - "${{ env.VERSION }}" <<EOF | |
| ${subject:-No message found} | |
| ### Included Software | |
| Nextcloud ${NC_VERSION} (can be automatically updated to latest minor version) | |
| PHP ${PHP_VERSION} | |
| Debian ${DEBIAN_VERSION} | |
| Armbian ${ARMBIAN_VERSION} | |
| ${body:+${body}${separator}} | |
| [Changelog](https://github.com/nextcloud/nextcloudpi/blob/${{ env.VERSION }}/changelog.md) | |
| EOF |