diff --git a/.github/workflows/build_pkg.yml b/.github/workflows/build_pkg.yml index 1435e41..b17236a 100644 --- a/.github/workflows/build_pkg.yml +++ b/.github/workflows/build_pkg.yml @@ -38,6 +38,7 @@ jobs: - uses: actions/checkout@v4 with: repository: gardenlinux/package-build + ref: feature/5-remove-pkg-yml - run: mkdir input output - uses: actions/checkout@v4 with: @@ -76,6 +77,7 @@ jobs: )" echo "pkg=$pkg" | tee -a "$GITHUB_OUTPUT" echo "build_options=$(cat output/.build_options)" | tee -a "$GITHUB_OUTPUT" + echo "source_name=$(cat output/.source_name)" | tee -a "$GITHUB_OUTPUT" - name: check if ${{ env.pkg }} already released id: check run: | @@ -88,11 +90,10 @@ jobs: id: release if: ${{ steps.check.outputs.skip_release != 'true' }} env: - ARTIFACT_NAME: ${{ steps.build.outputs.pkg }} - ARTIFACT_COMMIT: ${{ github.sha }} + PKG_NAME: ${{ steps.build.outputs.pkg }} run: | - ARTIFACT_TAG=${ARTIFACT_NAME/\~/\_} - release="$(./scripts/gh_release "${{ github.token }}" "${{ github.repository }}" create --draft "${ARTIFACT_TAG}" "${ARTIFACT_COMMIT}" "${ARTIFACT_NAME}")" + tag="gardenlinux/${PKG_NAME#${{ steps.build.outputs.source_name }}_}" + release="$(./scripts/gh_release "${{ github.token }}" "${{ github.repository }}" create --draft "$tag" "${{ github.sha }}" "${{ steps.build.outputs.pkg }}")" for f in output/*; do ./scripts/gh_release "${{ github.token }}" "${{ github.repository }}" upload "$release" "$f" done @@ -113,6 +114,7 @@ jobs: - uses: actions/checkout@v4 with: repository: gardenlinux/package-build + ref: feature/5-remove-pkg-yml - name: setup binfmt if: ${{ matrix.arch == 'arm64v8' }} run: sudo podman run --privileged ghcr.io/gardenlinux/binfmt_container @@ -170,6 +172,7 @@ jobs: - uses: actions/checkout@v4 with: repository: gardenlinux/package-build + ref: feature/5-remove-pkg-yml - name: publish drafted release run: ./scripts/gh_release "${{ github.token }}" "${{ github.repository }}" publish_draft "${{ needs.source.outputs.release }}" cleanup: diff --git a/container/bin/build_source b/container/bin/build_source index f507fb4..53bab97 100755 --- a/container/bin/build_source +++ b/container/bin/build_source @@ -61,6 +61,7 @@ main() ( # Add some meta files next to the created artifacts echo "$DEB_BUILD_OPTIONS" > .build_options + echo "${pkg}" > .source_name ln -s "${pkg}_${version}.dsc" .source # Copy all artifacts to the dedicated output directory diff --git a/scripts/gh_release b/scripts/gh_release index eb0e863..00647f2 100755 --- a/scripts/gh_release +++ b/scripts/gh_release @@ -64,9 +64,11 @@ case "$action" in commit="$1"; shift name="$1"; shift + normalized_tag=${tag/\~/\_} + release="$(post "releases" '{ "draft": '"$draft"', - "tag_name": "'"$tag"'", + "tag_name": "'"$normalized_tag"'", "target_commitish": "'"$commit"'", "name": "'"$name"'" }' | jq -r '.id')" @@ -78,16 +80,20 @@ case "$action" in release="$1"; shift asset_file="$1"; shift - asset_name="$(basename "$asset_file")" + normalized_asset_file=${asset_file/\~/\_} + + asset_name="$(basename "$normalized_asset_file")" upload "releases/$release/assets?name=$asset_name" < "$asset_file" > /dev/null - echo "uploaded $asset_file to $release" + echo "uploaded $asset_file to $release ($asset_name)" ;; "download") release="$1"; shift name="$1"; shift - asset_id="$(get "releases/$release/assets" | jq -r '.[] | select(.name == "'"$name"'") | .id')" + normalized_name=${name/\~/\_} + + asset_id="$(get "releases/$release/assets" | jq -r '.[] | select(.name == "'"$normalized_name"'") | .id')" get_binary "releases/assets/$asset_id" > "$name" ;;