diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 621b5ef3f0..6dcfbcdcca 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -504,6 +504,72 @@ jobs: name: AppImage-${{matrix.compiler}} path: artifacts + source: + name: Create source archive + runs-on: ubuntu-24.04 + needs: + - changelog + - version + + steps: + - name: Clone ImageMagick + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2 + with: + path: ImageMagick + persist-credentials: false + + - name: Download ChangeLog.md + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c #v8.0.1 + with: + name: ChangeLog + path: ImageMagick + + - name: Create source archive + env: + VERSION: ${{needs.version.outputs.version}} + run: | + set -e + DIRECTORIES=( + ".devcontainer" + ".git" + ".github" + "api_examples" + "oss-fuzz" + ) + FILES=( + ".auto-changelog" + ".editorconfig" + ".gitignore" + ) + for dir_name in "${DIRECTORIES[@]}"; do + path="ImageMagick/$dir_name" + if [[ -e "$path" ]]; then + rm -rf -- "$path" + echo "Removed: $dir_name" + else + echo "Not found: $dir_name" + exit 1 + fi + done + for file_name in "${FILES[@]}"; do + path="ImageMagick/$file_name" + if [[ -e "$path" ]]; then + rm -f -- "$path" + echo "Removed: $file_name" + else + echo "Not found: $file_name" + exit 1 + fi + done + mv ImageMagick "ImageMagick-$VERSION" + mkdir artifacts + 7z a "artifacts/ImageMagick-$VERSION.7z" "ImageMagick-$VERSION" + + - name: Upload source archive + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a #v7.0.1 + with: + name: ImageMagick-${{needs.version.outputs.version}}.7z + path: artifacts release: name: Publish Release