diff --git a/.github/pipeline-version b/.github/pipeline-version index 3989355..bae5c7f 100644 --- a/.github/pipeline-version +++ b/.github/pipeline-version @@ -1 +1 @@ -1.20.0 +1.21.3 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9725f4e..4d30d42 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -11,12 +11,12 @@ jobs: - ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: actions/cache@v2 + - uses: actions/cache@v3 with: key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} path: ${{ env.HOME }}/go/pkg/mod restore-keys: ${{ runner.os }}-go- - - uses: actions/setup-go@v2 + - uses: actions/setup-go@v3 with: go-version: "1.17" - name: Run Tests diff --git a/.github/workflows/update-draft-release.yml b/.github/workflows/update-draft-release.yml index fab5e9a..6c1ca50 100644 --- a/.github/workflows/update-draft-release.yml +++ b/.github/workflows/update-draft-release.yml @@ -13,198 +13,12 @@ jobs: uses: release-drafter/release-drafter@v5 env: GITHUB_TOKEN: ${{ secrets.UB_GITHUB_TOKEN }} - - name: Install crane - run: | - #!/usr/bin/env bash - - set -euo pipefail - - echo "Installing crane ${CRANE_VERSION}" - - mkdir -p "${HOME}"/bin - echo "${HOME}/bin" >> "${GITHUB_PATH}" - - curl \ - --show-error \ - --silent \ - --location \ - "https://github.com/google/go-containerregistry/releases/download/v${CRANE_VERSION}/go-containerregistry_Linux_x86_64.tar.gz" \ - | tar -C "${HOME}/bin" -xz crane - env: - CRANE_VERSION: 0.8.0 - - name: Install yj - run: | - #!/usr/bin/env bash - - set -euo pipefail - - echo "Installing yj ${YJ_VERSION}" - - mkdir -p "${HOME}"/bin - echo "${HOME}/bin" >> "${GITHUB_PATH}" - - curl \ - --location \ - --show-error \ - --silent \ - --output "${HOME}"/bin/yj \ - "https://github.com/sclevine/yj/releases/download/v${YJ_VERSION}/yj-linux" - - chmod +x "${HOME}"/bin/yj - env: - YJ_VERSION: 5.0.0 - uses: actions/checkout@v3 - name: Update draft release with buildpack information - run: | - #!/usr/bin/env bash - - set -euo pipefail - - PAYLOAD="{}" - - if [[ -e buildpack.toml ]]; then - PAYLOAD=$(jq -n -r \ - --argjson PAYLOAD "${PAYLOAD}" \ - --argjson BUILDPACK "$(yj -tj < buildpack.toml)" \ - '$PAYLOAD | .primary = $BUILDPACK') - fi - - if [[ -e builder.toml ]]; then - PAYLOAD=$(jq -n -r \ - --argjson PAYLOAD "${PAYLOAD}" \ - --argjson BUILDER "$(yj -tj < builder.toml)" \ - '$PAYLOAD | .primary = $BUILDER') - - for BUILDPACK in $( - jq -n -r \ - --argjson PAYLOAD "${PAYLOAD}" \ - '$PAYLOAD.primary.buildpacks[].uri | capture("(?:.+://)?(?.+)") | .image' - ); do - crane export "${BUILDPACK}" - | tar xf - --absolute-names --strip-components 1 --wildcards "/cnb/buildpacks/*/*/buildpack.toml" - done - fi - - if [[ -e package.toml ]]; then - for PACKAGE in $(yj -t < package.toml | jq -r '.dependencies[].uri | capture("(?:.+://)?(?.+)") | .image'); do - crane export "${PACKAGE}" - | tar xf - --absolute-names --strip-components 1 --wildcards "/cnb/buildpacks/*/*/buildpack.toml" - done - fi - - if [[ -d buildpacks ]]; then - while IFS= read -r -d '' FILE; do - PAYLOAD=$(jq -n -r \ - --argjson PAYLOAD "${PAYLOAD}" \ - --argjson BUILDPACK "$(yj -tj < "${FILE}")" \ - '$PAYLOAD | .buildpacks += [ $BUILDPACK ]') - done < <(find buildpacks -name buildpack.toml -print0) - fi - - jq -n -r \ - --argjson PAYLOAD "${PAYLOAD}" \ - --arg RELEASE_NAME "${RELEASE_NAME}" \ - '( select($PAYLOAD.primary.buildpack.name) | "\($PAYLOAD.primary.buildpack.name) \($RELEASE_NAME)" ) // "\($RELEASE_NAME)"' \ - > "${HOME}"/name - - jq -n -r \ - --argjson PAYLOAD "${PAYLOAD}" \ - --arg RELEASE_BODY "${RELEASE_BODY}" \ - ' - def id(b): - select(b.buildpack.id) | "**ID**: `\(b.buildpack.id)`" - ; - - def included_buildpackages(b): [ - "#### Included Buildpackages:", - "Name | ID | Version", - ":--- | :- | :------", - ( b | sort_by(.buildpack.name | ascii_downcase) | map("\(.buildpack.name) | `\(.buildpack.id)` | `\(.buildpack.version)`") ), - "" - ]; - - def stacks(s): [ - "#### Supported Stacks:", - ( s | sort_by(.id | ascii_downcase) | map("- `\(.id)`") ), - "" - ]; - - def default_dependency_versions(d): [ - "#### Default Dependency Versions:", - "ID | Version", - ":- | :------", - ( d | to_entries | sort_by(.key | ascii_downcase) | map("`\(.key)` | `\(.value)`") ), - "" - ]; - - def dependencies(d): [ - "#### Dependencies:", - "Name | Version | SHA256", - ":--- | :------ | :-----", - ( d | sort_by(.name // .id | ascii_downcase) | map("\(.name // .id) | `\(.version)` | `\(.sha256)`")), - "" - ]; - - def order_groupings(o): [ - "
", - "Order Groupings", - "", - ( o | map([ - "ID | Version | Optional", - ":- | :------ | :-------", - ( .group | map([ "`\(.id)` | ", (select(.version) | "`\(.version)`"), ( select(.optional) | "| `\(.optional)`" ) ] | join(" ")) ), - "" - ])), - "
", - "" - ]; - - def primary_buildpack(p): [ - id(p.primary), - "**Digest**: ", - "", - ( select(p.buildpacks) | included_buildpackages(p.buildpacks) ), - ( select(p.primary.stacks) | stacks(p.primary.stacks) ), - ( select(p.primary.metadata."default-versions") | default_dependency_versions(p.primary.metadata."default-versions") ), - ( select(p.primary.metadata.dependencies) | dependencies(p.primary.metadata.dependencies) ), - ( select(p.primary.order) | order_groupings(p.primary.order) ), - ( select(p.buildpacks) | "---" ), - "" - ]; - - def nested_buildpack(b): [ - "
", - "\(b.buildpack.name) \(b.buildpack.version)", - "", - id(b), - "", - ( select(b.stacks) | stacks(b.stacks) ), - ( select(b.metadata."default-versions") | default_dependency_versions(b.metadata."default-versions") ), - ( select(b.metadata.dependencies) | dependencies(b.metadata.dependencies) ), - ( select(b.order) | order_groupings(b.order) ), - "---", - "", - "
", - "" - ]; - - $PAYLOAD | [ - primary_buildpack(.), - ( select(.buildpacks) | [ .buildpacks | sort_by(.buildpack.name | ascii_downcase) | map(nested_buildpack(.)) ] ), - "", - "---", - "", - $RELEASE_BODY - ] | flatten | join("\n") - ' > "${HOME}"/body - - gh api \ - --method PATCH \ - "/repos/:owner/:repo/releases/${RELEASE_ID}" \ - --field "tag_name=${RELEASE_TAG_NAME}" \ - --field "name=@${HOME}/name" \ - --field "body=@${HOME}/body" - env: - GITHUB_TOKEN: ${{ secrets.UB_GITHUB_TOKEN }} - RELEASE_BODY: ${{ steps.release-drafter.outputs.body }} - RELEASE_ID: ${{ steps.release-drafter.outputs.id }} - RELEASE_NAME: ${{ steps.release-drafter.outputs.name }} - RELEASE_TAG_NAME: ${{ steps.release-drafter.outputs.tag_name }} + uses: docker://ghcr.io/paketo-buildpacks/actions/draft-release:main + with: + github_token: ${{ secrets.UB_GITHUB_TOKEN }} + release_body: ${{ steps.release-drafter.outputs.body }} + release_id: ${{ steps.release-drafter.outputs.id }} + release_name: ${{ steps.release-drafter.outputs.name }} + release_tag_name: ${{ steps.release-drafter.outputs.tag_name }} diff --git a/.github/workflows/update-pipeline.yml b/.github/workflows/update-pipeline.yml index 827091b..7d6e104 100644 --- a/.github/workflows/update-pipeline.yml +++ b/.github/workflows/update-pipeline.yml @@ -14,7 +14,7 @@ jobs: runs-on: - ubuntu-latest steps: - - uses: actions/setup-go@v2 + - uses: actions/setup-go@v3 with: go-version: "1.17" - name: Install octo @@ -62,7 +62,7 @@ jobs: env: DESCRIPTOR: .github/pipeline-descriptor.yml GITHUB_TOKEN: ${{ secrets.UB_GITHUB_TOKEN }} - - uses: peter-evans/create-pull-request@v3 + - uses: peter-evans/create-pull-request@v4 with: author: ${{ secrets.UB_GITHUB_USERNAME }} <${{ secrets.UB_GITHUB_USERNAME }}@users.noreply.github.com> body: |-