Release #830
This file contains 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 | |
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-4: | |
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: RaspberryPi4 | |
secrets: inherit | |
raspberrypi-5: | |
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: rpi5b | |
board_name: RaspberryPi5 | |
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-4-release: | |
needs: | |
- raspberrypi-4 | |
- 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-4.outputs.artifact_name }}" | |
artifact_file: "${{ needs.raspberrypi-4.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 | |
raspberrypi-5-release: | |
needs: | |
- raspberrypi-5 | |
- 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-5.outputs.artifact_name }}" | |
artifact_file: "${{ needs.raspberrypi-5.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 |