--- name: New release on: # yamllint disable-line rule:truthy workflow_dispatch: push: branches: - master jobs: generate_changelog: name: create release draft if: github.repository == 'dev-sec/ansible-collection-hardening' runs-on: ubuntu-22.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: fetch-depth: 0 ref: master - name: 'Get Previous tag' id: previoustag uses: "WyriHaximus/github-action-get-previous-tag@master" env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - name: calculate next version id: version uses: patrickjahns/version-drafter-action@2076fa43abb28f31d0e8b0890253fbd1d1a966fc # v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Generate changelog uses: charmixer/auto-changelog-action@b25e89c9410e03189f0d48b02b3a8caad6e78015 # v1 with: token: ${{ secrets.GITHUB_TOKEN }} future_release: ${{ steps.version.outputs.next-version }} # this excludes all versions prior to the collection-release # since they break the changelog generation with the error: # "No common ancestor between ... and $version" exclude_tags_regex: '^[0-6]\.\d\.\d' issue_line_labels: mysql_hardening,os_hardening,ssh_hardening,nginx_hardening - name: push changelog uses: github-actions-x/commit@722d56b8968bf00ced78407bbe2ead81062d8baa # v2.9 with: github-token: ${{ secrets.GITHUB_TOKEN }} push-branch: 'master' commit-message: 'update changelog' force-add: 'true' files: CHANGELOG.md name: dev-sec CI email: hello@dev-sec.io - name: Generate changelog for the release run: | sed '/## \[${{ steps.previoustag.outputs.tag }}\]/Q' CHANGELOG.md > CHANGELOGRELEASE.md - name: Read CHANGELOG.md id: package uses: juliangruber/read-file-action@b549046febe0fe86f8cb4f93c24e284433f9ab58 # v1 with: path: ./CHANGELOGRELEASE.md - name: Delete old drafts uses: hugo19941994/delete-draft-releases@1bdca1ea7ffb25ae7f468a7bdb40056dae98175e # v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create Release draft id: create_release uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e # v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token with: release_name: ${{ steps.version.outputs.next-version }} tag_name: ${{ steps.version.outputs.next-version }} body: | ${{ steps.package.outputs.content }} draft: true