name: Push on GitHub (REUSABLE) on: workflow_call: inputs: VERSION: required: true type: string PRERELEASE: required: true type: boolean jobs: build: runs-on: ubuntu-latest steps: # Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 # Get PDF doc - name: Get documentation if: inputs.VERSION != 'testing' uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: name: BunkerWeb_documentation_v${{ inputs.VERSION }}.pdf # Create tag - uses: rickstaa/action-create-tag@861755f3fcbce1b21a65c17bad10e7d35c27b6d9 # v1.7.1 name: Create tag if: inputs.VERSION != 'testing' with: tag: "v${{ inputs.VERSION }}" message: "v${{ inputs.VERSION }}" force_push_tag: true # Create tag - uses: rickstaa/action-create-tag@861755f3fcbce1b21a65c17bad10e7d35c27b6d9 # v1.7.1 name: Create tag if: inputs.VERSION == 'testing' with: tag: "${{ inputs.VERSION }}" message: "${{ inputs.VERSION }}" force_push_tag: true # Extract changelog - name: Extract changelog if: inputs.VERSION != 'testing' id: getchangelog run: | content=$(awk -v n=2 '/##/{n--}; n > 0' CHANGELOG.md | grep -v '# Changelog' | grep -v '##' | sed '/^$/d') content="${content//'%'/'%25'}" content="${content//$'\n'/'%0A'}" content="${content//$'\r'/'%0D'}" echo "content=$content" >> $GITHUB_OUTPUT # Create release - name: Create release if: inputs.VERSION != 'testing' uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 with: body: | Documentation : https://docs.bunkerweb.io/${{ inputs.VERSION }}/ Docker tags : - BunkerWeb : `bunkerity/bunkerweb:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb:${{ inputs.VERSION }}` - Scheduler : `bunkerity/bunkerweb-scheduler:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb-scheduler:${{ inputs.VERSION }}` - Autoconf : `bunkerity/bunkerweb-autoconf:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb-autoconf:${{ inputs.VERSION }}` - UI : `bunkerity/bunkerweb-ui:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb-ui:${{ inputs.VERSION }}` Linux packages : https://packagecloud.io/app/bunkerity/bunkerweb/search?q=${{ inputs.VERSION }}&filter=all&dist= Changelog : ${{ steps.getchangelog.outputs.content }} draft: true prerelease: ${{ inputs.PRERELEASE }} name: v${{ inputs.VERSION }} tag_name: v${{ inputs.VERSION }} discussion_category_name: Announcements files: BunkerWeb_documentation_v${{ inputs.VERSION }}.pdf # Create release - name: Create release if: inputs.VERSION == 'testing' uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 with: body: | **The testing version of BunkerWeb should not be used in production, please use the latest stable version instead.** Documentation : https://docs.bunkerweb.io/${{ inputs.VERSION }}/ Docker tags : - BunkerWeb : `bunkerity/bunkerweb:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb:${{ inputs.VERSION }}` - Scheduler : `bunkerity/bunkerweb-scheduler:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb-scheduler:${{ inputs.VERSION }}` - Autoconf : `bunkerity/bunkerweb-autoconf:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb-autoconf:${{ inputs.VERSION }}` - UI : `bunkerity/bunkerweb-ui:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb-ui:${{ inputs.VERSION }}` Linux packages : https://packagecloud.io/app/bunkerity/bunkerweb/search?q=${{ inputs.VERSION }}&filter=all&dist= Please note that when using Linux Debian or Ubuntu integration, you will need to add the `force-bad-version` directive to your `/etc/dpkg/dpkg.cfg` file before installing the testing version of BunkerWeb. draft: false prerelease: ${{ inputs.PRERELEASE }} name: Testing tag_name: ${{ inputs.VERSION }}