name: Build and publish app release on: release: types: [published] env: APP_NAME: news jobs: build_and_publish: environment: release runs-on: ubuntu-latest name: "Release: build, sign and upload the app" strategy: matrix: php-versions: ['7.4'] nextcloud: ['stable21'] database: ['sqlite'] steps: - name: Checkout uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - name: Setup PHP uses: shivammathur/setup-php@afefcaf556d98dc7896cca380e181decb609ca44 with: php-version: ${{ matrix.php-versions }} extensions: pdo_sqlite,pdo_mysql,pdo_pgsql,gd,zip coverage: none - name: Set up server non MySQL uses: SMillerDev/nextcloud-actions/setup-nextcloud@fae87e29aa7cdf1ea0b8033c67f60e75b10be2cd with: cron: false version: ${{ matrix.nextcloud }} database-type: ${{ matrix.database }} - name: Prime app build run: make - name: Configure server with app uses: SMillerDev/nextcloud-actions/setup-nextcloud-app@fae87e29aa7cdf1ea0b8033c67f60e75b10be2cd with: app: ${{ env.APP_NAME }} check-code: false - name: Create signed release archive run: | cd ../server/apps/${{ env.APP_NAME }} && make appstore env: app_private_key: ${{ secrets.APP_PRIVATE_KEY }} app_public_crt: ${{ secrets.APP_PUBLIC_CRT }} - name: Upload app tarball to release uses: svenstaro/upload-release-action@483c1e56f95e88835747b1c7c60581215016cbf2 id: attach_to_release with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: ../server/apps/${{ env.APP_NAME }}/build/artifacts/appstore/${{ env.APP_NAME }}.tar.gz asset_name: ${{ env.APP_NAME }}.tar.gz tag: ${{ github.ref }} overwrite: true - name: Upload app to Nextcloud appstore uses: R0Wi/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 with: app_name: ${{ env.APP_NAME }} appstore_token: ${{ secrets.APPSTORE_TOKEN }} download_url: ${{ steps.attach_to_release.outputs.browser_download_url }} app_private_key: ${{ secrets.APP_PRIVATE_KEY }} nightly: ${{ github.event.release.prerelease }} - name: Delete crt and key from local storage run: rm -f ~/.nextcloud/certificates/*