Release #957
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 | ||
|
Check failure on line 61 in .github/workflows/release.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 | ||