From 071c32f0f501b55a865436c93c15ea5f4118f639 Mon Sep 17 00:00:00 2001 From: lispking Date: Wed, 11 Sep 2024 14:46:04 +0000 Subject: [PATCH] Bump pipeline from 0.0.0 to 1.40.0 Bumps pipeline from 0.0.0 to 1.40.0. Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .github/CODEOWNERS | 0 .github/labels.yml | 42 ++++ .github/pipeline-version | 1 + .github/release-drafter.yml | 32 +++ .github/workflows/pb-create-package.yml | 209 ++++++++++++++++++ .github/workflows/pb-minimal-labels.yml | 29 +++ .github/workflows/pb-synchronize-labels.yml | 17 ++ .github/workflows/pb-tests.yml | 178 +++++++++++++++ .github/workflows/pb-update-draft-release.yml | 31 +++ .github/workflows/pb-update-procfile.yml | 98 ++++++++ .github/workflows/pb-update-sway.yml | 98 ++++++++ .gitignore | 4 +- 12 files changed, 738 insertions(+), 1 deletion(-) create mode 100644 .github/CODEOWNERS create mode 100644 .github/labels.yml create mode 100644 .github/pipeline-version create mode 100644 .github/release-drafter.yml create mode 100644 .github/workflows/pb-create-package.yml create mode 100644 .github/workflows/pb-minimal-labels.yml create mode 100644 .github/workflows/pb-synchronize-labels.yml create mode 100644 .github/workflows/pb-tests.yml create mode 100644 .github/workflows/pb-update-draft-release.yml create mode 100644 .github/workflows/pb-update-procfile.yml create mode 100644 .github/workflows/pb-update-sway.yml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..e69de29 diff --git a/.github/labels.yml b/.github/labels.yml new file mode 100644 index 0000000..73f0613 --- /dev/null +++ b/.github/labels.yml @@ -0,0 +1,42 @@ +- name: semver:major + description: A change requiring a major version bump + color: f9d0c4 +- name: semver:minor + description: A change requiring a minor version bump + color: f9d0c4 +- name: semver:patch + description: A change requiring a patch version bump + color: f9d0c4 +- name: type:bug + description: A general bug + color: e3d9fc +- name: type:dependency-upgrade + description: A dependency upgrade + color: e3d9fc +- name: type:documentation + description: A documentation update + color: e3d9fc +- name: type:enhancement + description: A general enhancement + color: e3d9fc +- name: type:question + description: A user question + color: e3d9fc +- name: type:task + description: A general task + color: e3d9fc +- name: type:informational + description: Provides information or notice to the community + color: e3d9fc +- name: type:poll + description: Request for feedback from the community + color: e3d9fc +- name: note:ideal-for-contribution + description: An issue that a contributor can help us with + color: 54f7a8 +- name: note:on-hold + description: We can't start working on this issue yet + color: 54f7a8 +- name: note:good-first-issue + description: A good first issue to get started with + color: 54f7a8 diff --git a/.github/pipeline-version b/.github/pipeline-version new file mode 100644 index 0000000..32b7211 --- /dev/null +++ b/.github/pipeline-version @@ -0,0 +1 @@ +1.40.0 diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 0000000..b5c1d5b --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,32 @@ +template: $CHANGES +name-template: $RESOLVED_VERSION +tag-template: v$RESOLVED_VERSION +categories: + - title: ⭐️ Enhancements + labels: + - type:enhancement + - title: "\U0001F41E Bug Fixes" + labels: + - type:bug + - title: "\U0001F4D4 Documentation" + labels: + - type:documentation + - title: ⛏ Dependency Upgrades + labels: + - type:dependency-upgrade + - title: "\U0001F6A7 Tasks" + labels: + - type:task +exclude-labels: + - type:question +version-resolver: + major: + labels: + - semver:major + minor: + labels: + - semver:minor + patch: + labels: + - semver:patch + default: patch diff --git a/.github/workflows/pb-create-package.yml b/.github/workflows/pb-create-package.yml new file mode 100644 index 0000000..96c9904 --- /dev/null +++ b/.github/workflows/pb-create-package.yml @@ -0,0 +1,209 @@ +name: Create Package +"on": + release: + types: + - published +jobs: + create-package: + name: Create Package + runs-on: + - ubuntu-latest + steps: + - name: Docker login ghcr.io + if: ${{ (github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork) && (github.actor != 'dependabot[bot]') }} + uses: docker/login-action@v3 + with: + password: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} + registry: ghcr.io + username: ${{ github.actor }} + - uses: actions/setup-go@v5 + with: + go-version: "1.22" + - name: Install create-package + run: | + #!/usr/bin/env bash + + set -euo pipefail + + go install -ldflags="-s -w" github.com/paketo-buildpacks/libpak/cmd/create-package@latest + - uses: buildpacks/github-actions/setup-tools@v5.7.2 + with: + crane-version: 0.19.1 + yj-version: 5.1.0 + - uses: buildpacks/github-actions/setup-pack@v5.7.2 + with: + pack-version: 0.34.2 + - name: Enable pack Experimental + if: ${{ false }} + run: | + #!/usr/bin/env bash + + set -euo pipefail + + echo "Enabling pack experimental features" + + mkdir -p "${HOME}"/.pack + echo "experimental = true" >> "${HOME}"/.pack/config.toml + - uses: actions/checkout@v4 + - if: ${{ false }} + uses: actions/cache@v4 + with: + key: ${{ runner.os }}-go-${{ hashFiles('**/buildpack.toml', '**/package.toml') }} + path: |- + ${{ env.HOME }}/.pack + ${{ env.HOME }}/carton-cache + restore-keys: ${{ runner.os }}-go- + - name: Compute Version + id: version + run: | + #!/usr/bin/env bash + + set -euo pipefail + + if [[ ${GITHUB_REF:-} != "refs/"* ]]; then + echo "GITHUB_REF set to [${GITHUB_REF:-}], but that is unexpected. It should start with 'refs/*'" + exit 255 + fi + + if [[ ${GITHUB_REF} =~ refs/tags/v([0-9]+\.[0-9]+\.[0-9]+) ]]; then + VERSION=${BASH_REMATCH[1]} + + MAJOR_VERSION="$(echo "${VERSION}" | awk -F '.' '{print $1 }')" + MINOR_VERSION="$(echo "${VERSION}" | awk -F '.' '{print $1 "." $2 }')" + + echo "version-major=${MAJOR_VERSION}" >> "$GITHUB_OUTPUT" + echo "version-minor=${MINOR_VERSION}" >> "$GITHUB_OUTPUT" + elif [[ ${GITHUB_REF} =~ refs/heads/(.+) ]]; then + VERSION=${BASH_REMATCH[1]} + else + VERSION=$(git rev-parse --short HEAD) + fi + + echo "version=${VERSION}" >> "$GITHUB_OUTPUT" + echo "Selected ${VERSION} from + * ref: ${GITHUB_REF} + * sha: ${GITHUB_SHA} + " + - name: Create Package + run: | + #!/usr/bin/env bash + + set -euo pipefail + + # With Go 1.20, we need to set this so that we produce statically compiled binaries + # + # Starting with Go 1.20, Go will produce binaries that are dynamically linked against libc + # which can cause compatibility issues. The compiler links against libc on the build system + # but that may be newer than on the stacks we support. + export CGO_ENABLED=0 + + if [[ "${INCLUDE_DEPENDENCIES}" == "true" ]]; then + create-package \ + --source "${SOURCE_PATH:-.}" \ + --cache-location "${HOME}"/carton-cache \ + --destination "${HOME}"/buildpack \ + --include-dependencies \ + --version "${VERSION}" + else + create-package \ + --source "${SOURCE_PATH:-.}" \ + --destination "${HOME}"/buildpack \ + --version "${VERSION}" + fi + + PACKAGE_FILE="${SOURCE_PATH:-.}/package.toml" + if [ -f "${PACKAGE_FILE}" ]; then + cp "${PACKAGE_FILE}" "${HOME}/buildpack/package.toml" + printf '[buildpack]\nuri = "%s"\n\n[platform]\nos = "%s"\n' "${HOME}/buildpack" "${OS}" >> "${HOME}/buildpack/package.toml" + fi + env: + INCLUDE_DEPENDENCIES: "false" + OS: linux + SOURCE_PATH: "" + VERSION: ${{ steps.version.outputs.version }} + - name: Package Buildpack + id: package + run: |- + #!/usr/bin/env bash + + set -euo pipefail + + COMPILED_BUILDPACK="${HOME}/buildpack" + + # create-package puts the buildpack here, we need to run from that directory + # for component buildpacks so that pack doesn't need a package.toml + cd "${COMPILED_BUILDPACK}" + CONFIG="" + if [ -f "${COMPILED_BUILDPACK}/package.toml" ]; then + CONFIG="--config ${COMPILED_BUILDPACK}/package.toml" + fi + + PACKAGE_LIST=($PACKAGES) + # Extract first repo (Docker Hub) as the main to package & register + PACKAGE=${PACKAGE_LIST[0]} + + if [[ "${PUBLISH:-x}" == "true" ]]; then + pack -v buildpack package \ + "${PACKAGE}:${VERSION}" ${CONFIG} \ + --publish + + if [[ -n ${VERSION_MINOR:-} && -n ${VERSION_MAJOR:-} ]]; then + crane tag "${PACKAGE}:${VERSION}" "${VERSION_MINOR}" + crane tag "${PACKAGE}:${VERSION}" "${VERSION_MAJOR}" + fi + crane tag "${PACKAGE}:${VERSION}" latest + echo "digest=$(crane digest "${PACKAGE}:${VERSION}")" >> "$GITHUB_OUTPUT" + + # copy to other repositories specified + for P in "${PACKAGE_LIST[@]}" + do + if [ "$P" != "$PACKAGE" ]; then + crane copy "${PACKAGE}:${VERSION}" "${P}:${VERSION}" + if [[ -n ${VERSION_MINOR:-} && -n ${VERSION_MAJOR:-} ]]; then + crane tag "${P}:${VERSION}" "${VERSION_MINOR}" + crane tag "${P}:${VERSION}" "${VERSION_MAJOR}" + fi + crane tag "${P}:${VERSION}" latest + fi + done + + else + pack -v buildpack package \ + "${PACKAGE}:${VERSION}" ${CONFIG} \ + --format "${FORMAT}" $([ -n "$TTL_SH_PUBLISH" ] && [ "$TTL_SH_PUBLISH" = "true" ] && echo "--publish") + fi + env: + PACKAGES: ghcr.io/amp-buildpacks/fuel + PUBLISH: "true" + VERSION: ${{ steps.version.outputs.version }} + VERSION_MAJOR: ${{ steps.version.outputs.version-major }} + VERSION_MINOR: ${{ steps.version.outputs.version-minor }} + - name: Update release with digest + run: | + #!/usr/bin/env bash + + set -euo pipefail + + PAYLOAD=$(cat "${GITHUB_EVENT_PATH}") + + RELEASE_ID=$(jq -n -r --argjson PAYLOAD "${PAYLOAD}" '$PAYLOAD.release.id') + RELEASE_TAG_NAME=$(jq -n -r --argjson PAYLOAD "${PAYLOAD}" '$PAYLOAD.release.tag_name') + RELEASE_NAME=$(jq -n -r --argjson PAYLOAD "${PAYLOAD}" '$PAYLOAD.release.name') + RELEASE_BODY=$(jq -n -r --argjson PAYLOAD "${PAYLOAD}" '$PAYLOAD.release.body') + + gh api \ + --method PATCH \ + "/repos/:owner/:repo/releases/${RELEASE_ID}" \ + --field "tag_name=${RELEASE_TAG_NAME}" \ + --field "name=${RELEASE_NAME}" \ + --field "body=${RELEASE_BODY///\`${DIGEST}\`}" + env: + DIGEST: ${{ steps.package.outputs.digest }} + GITHUB_TOKEN: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} + - if: ${{ false }} + uses: docker://ghcr.io/buildpacks/actions/registry/request-add-entry:5.7.2 + with: + address: ghcr.io/amp-buildpacks/fuel@${{ steps.package.outputs.digest }} + id: amp-buildpacks/fuel + token: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} + version: ${{ steps.version.outputs.version }} diff --git a/.github/workflows/pb-minimal-labels.yml b/.github/workflows/pb-minimal-labels.yml new file mode 100644 index 0000000..767ff02 --- /dev/null +++ b/.github/workflows/pb-minimal-labels.yml @@ -0,0 +1,29 @@ +name: Minimal Labels +"on": + pull_request: + types: + - synchronize + - reopened + - labeled + - unlabeled +jobs: + semver: + name: Minimal Semver Labels + runs-on: + - ubuntu-latest + steps: + - uses: mheap/github-action-required-labels@v5 + with: + count: 1 + labels: semver:major, semver:minor, semver:patch + mode: exactly + type: + name: Minimal Type Labels + runs-on: + - ubuntu-latest + steps: + - uses: mheap/github-action-required-labels@v5 + with: + count: 1 + labels: type:bug, type:dependency-upgrade, type:documentation, type:enhancement, type:question, type:task + mode: exactly diff --git a/.github/workflows/pb-synchronize-labels.yml b/.github/workflows/pb-synchronize-labels.yml new file mode 100644 index 0000000..9f837d4 --- /dev/null +++ b/.github/workflows/pb-synchronize-labels.yml @@ -0,0 +1,17 @@ +name: Synchronize Labels +"on": + push: + branches: + - main + paths: + - .github/labels.yml +jobs: + synchronize: + name: Synchronize Labels + runs-on: + - ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: micnncim/action-label-syncer@v1 + env: + GITHUB_TOKEN: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} diff --git a/.github/workflows/pb-tests.yml b/.github/workflows/pb-tests.yml new file mode 100644 index 0000000..3bc823d --- /dev/null +++ b/.github/workflows/pb-tests.yml @@ -0,0 +1,178 @@ +name: Tests +"on": + merge_group: + types: + - checks_requested + branches: + - main + pull_request: {} + push: + branches: + - main +jobs: + create-package: + name: Create Package Test + runs-on: + - ubuntu-latest + steps: + - name: Docker login ghcr.io + if: ${{ (github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork) && (github.actor != 'dependabot[bot]') }} + uses: docker/login-action@v3 + with: + password: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} + registry: ghcr.io + username: ${{ github.actor }} + - uses: actions/setup-go@v5 + with: + go-version: "1.22" + - name: Install create-package + run: | + #!/usr/bin/env bash + + set -euo pipefail + + go install -ldflags="-s -w" github.com/paketo-buildpacks/libpak/cmd/create-package@latest + - uses: buildpacks/github-actions/setup-pack@v5.7.2 + with: + pack-version: 0.34.2 + - name: Enable pack Experimental + if: ${{ false }} + run: | + #!/usr/bin/env bash + + set -euo pipefail + + echo "Enabling pack experimental features" + + mkdir -p "${HOME}"/.pack + echo "experimental = true" >> "${HOME}"/.pack/config.toml + - uses: actions/checkout@v4 + - uses: actions/cache@v4 + with: + key: ${{ runner.os }}-go-${{ hashFiles('**/buildpack.toml', '**/package.toml') }} + path: |- + ${{ env.HOME }}/.pack + ${{ env.HOME }}/carton-cache + restore-keys: ${{ runner.os }}-go- + - name: Compute Version + id: version + run: | + #!/usr/bin/env bash + + set -euo pipefail + + if [[ ${GITHUB_REF:-} != "refs/"* ]]; then + echo "GITHUB_REF set to [${GITHUB_REF:-}], but that is unexpected. It should start with 'refs/*'" + exit 255 + fi + + if [[ ${GITHUB_REF} =~ refs/tags/v([0-9]+\.[0-9]+\.[0-9]+) ]]; then + VERSION=${BASH_REMATCH[1]} + + MAJOR_VERSION="$(echo "${VERSION}" | awk -F '.' '{print $1 }')" + MINOR_VERSION="$(echo "${VERSION}" | awk -F '.' '{print $1 "." $2 }')" + + echo "version-major=${MAJOR_VERSION}" >> "$GITHUB_OUTPUT" + echo "version-minor=${MINOR_VERSION}" >> "$GITHUB_OUTPUT" + elif [[ ${GITHUB_REF} =~ refs/heads/(.+) ]]; then + VERSION=${BASH_REMATCH[1]} + else + VERSION=$(git rev-parse --short HEAD) + fi + + echo "version=${VERSION}" >> "$GITHUB_OUTPUT" + echo "Selected ${VERSION} from + * ref: ${GITHUB_REF} + * sha: ${GITHUB_SHA} + " + - name: Create Package + run: | + #!/usr/bin/env bash + + set -euo pipefail + + # With Go 1.20, we need to set this so that we produce statically compiled binaries + # + # Starting with Go 1.20, Go will produce binaries that are dynamically linked against libc + # which can cause compatibility issues. The compiler links against libc on the build system + # but that may be newer than on the stacks we support. + export CGO_ENABLED=0 + + if [[ "${INCLUDE_DEPENDENCIES}" == "true" ]]; then + create-package \ + --source "${SOURCE_PATH:-.}" \ + --cache-location "${HOME}"/carton-cache \ + --destination "${HOME}"/buildpack \ + --include-dependencies \ + --version "${VERSION}" + else + create-package \ + --source "${SOURCE_PATH:-.}" \ + --destination "${HOME}"/buildpack \ + --version "${VERSION}" + fi + + PACKAGE_FILE="${SOURCE_PATH:-.}/package.toml" + if [ -f "${PACKAGE_FILE}" ]; then + cp "${PACKAGE_FILE}" "${HOME}/buildpack/package.toml" + printf '[buildpack]\nuri = "%s"\n\n[platform]\nos = "%s"\n' "${HOME}/buildpack" "${OS}" >> "${HOME}/buildpack/package.toml" + fi + env: + INCLUDE_DEPENDENCIES: "true" + OS: linux + VERSION: ${{ steps.version.outputs.version }} + - name: Package Buildpack + run: |- + #!/usr/bin/env bash + + set -euo pipefail + + COMPILED_BUILDPACK="${HOME}/buildpack" + + # create-package puts the buildpack here, we need to run from that directory + # for component buildpacks so that pack doesn't need a package.toml + cd "${COMPILED_BUILDPACK}" + CONFIG="" + if [ -f "${COMPILED_BUILDPACK}/package.toml" ]; then + CONFIG="--config ${COMPILED_BUILDPACK}/package.toml" + fi + + PACKAGE_LIST=($PACKAGES) + # Extract first repo (Docker Hub) as the main to package & register + PACKAGE=${PACKAGE_LIST[0]} + + if [[ "${PUBLISH:-x}" == "true" ]]; then + pack -v buildpack package \ + "${PACKAGE}:${VERSION}" ${CONFIG} \ + --publish + + if [[ -n ${VERSION_MINOR:-} && -n ${VERSION_MAJOR:-} ]]; then + crane tag "${PACKAGE}:${VERSION}" "${VERSION_MINOR}" + crane tag "${PACKAGE}:${VERSION}" "${VERSION_MAJOR}" + fi + crane tag "${PACKAGE}:${VERSION}" latest + echo "digest=$(crane digest "${PACKAGE}:${VERSION}")" >> "$GITHUB_OUTPUT" + + # copy to other repositories specified + for P in "${PACKAGE_LIST[@]}" + do + if [ "$P" != "$PACKAGE" ]; then + crane copy "${PACKAGE}:${VERSION}" "${P}:${VERSION}" + if [[ -n ${VERSION_MINOR:-} && -n ${VERSION_MAJOR:-} ]]; then + crane tag "${P}:${VERSION}" "${VERSION_MINOR}" + crane tag "${P}:${VERSION}" "${VERSION_MAJOR}" + fi + crane tag "${P}:${VERSION}" latest + fi + done + + else + pack -v buildpack package \ + "${PACKAGE}:${VERSION}" ${CONFIG} \ + --format "${FORMAT}" $([ -n "$TTL_SH_PUBLISH" ] && [ "$TTL_SH_PUBLISH" = "true" ] && echo "--publish") + fi + env: + FORMAT: image + PACKAGES: test + TTL_SH_PUBLISH: "false" + VERSION: ${{ steps.version.outputs.version }} diff --git a/.github/workflows/pb-update-draft-release.yml b/.github/workflows/pb-update-draft-release.yml new file mode 100644 index 0000000..e14fe82 --- /dev/null +++ b/.github/workflows/pb-update-draft-release.yml @@ -0,0 +1,31 @@ +name: Update Draft Release +"on": + push: + branches: + - main +jobs: + update: + name: Update Draft Release + runs-on: + - ubuntu-latest + steps: + - id: release-drafter + uses: release-drafter/release-drafter@v5 + env: + GITHUB_TOKEN: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} + - name: Docker login ghcr.io + if: ${{ (github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork) && (github.actor != 'dependabot[bot]') }} + uses: docker/login-action@v3 + with: + password: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} + registry: ghcr.io + username: ${{ github.actor }} + - uses: actions/checkout@v4 + - name: Update draft release with buildpack information + uses: docker://ghcr.io/paketo-buildpacks/actions/draft-release:main + with: + github_token: ${{ secrets.AMP_BUILDPACKS_BOT_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/pb-update-procfile.yml b/.github/workflows/pb-update-procfile.yml new file mode 100644 index 0000000..854daff --- /dev/null +++ b/.github/workflows/pb-update-procfile.yml @@ -0,0 +1,98 @@ +name: Update procfile +"on": + schedule: + - cron: 0 4 * * 4-5 + workflow_dispatch: {} +jobs: + update: + name: Update Package Dependency + runs-on: + - ubuntu-latest + steps: + - name: Docker login ghcr.io + if: ${{ (github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork) && (github.actor != 'dependabot[bot]') }} + uses: docker/login-action@v3 + with: + password: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} + registry: ghcr.io + username: ${{ github.actor }} + - uses: actions/setup-go@v5 + with: + go-version: "1.22" + - name: Install update-package-dependency + run: | + #!/usr/bin/env bash + + set -euo pipefail + + go install -ldflags="-s -w" github.com/paketo-buildpacks/libpak/cmd/update-package-dependency@latest + - uses: buildpacks/github-actions/setup-tools@v5.7.2 + with: + crane-version: 0.19.1 + yj-version: 5.1.0 + - uses: actions/checkout@v4 + - name: Update Package Dependency + id: package + run: | + #!/usr/bin/env bash + + set -euo pipefail + + NEW_VERSION=$(crane ls "${DEPENDENCY}" | grep -v latest | sort -V | tail -n 1) + + if [[ -e builder.toml ]]; then + OLD_VERSION=$(yj -tj < builder.toml | jq -r ".buildpacks[].uri | capture(\".*${DEPENDENCY}:(?.+)\") | .version") + + update-package-dependency \ + --builder-toml builder.toml \ + --id "${DEPENDENCY}" \ + --version "${NEW_VERSION}" + + git add builder.toml + fi + + if [[ -e package.toml ]]; then + OLD_VERSION=$(yj -tj < package.toml | jq -r ".dependencies[].uri | capture(\".*${DEPENDENCY}:(?.+)\") | .version") + + update-package-dependency \ + --buildpack-toml buildpack.toml \ + --id "${BP_DEPENDENCY:-$DEPENDENCY}" \ + --version "${NEW_VERSION}" + + update-package-dependency \ + --package-toml package.toml \ + --id "${PKG_DEPENDENCY:-$DEPENDENCY}" \ + --version "${NEW_VERSION}" + + git add buildpack.toml package.toml + fi + + git checkout -- . + + if [ "$(echo "$OLD_VERSION" | awk -F '.' '{print $1}')" != "$(echo "$NEW_VERSION" | awk -F '.' '{print $1}')" ]; then + LABEL="semver:major" + elif [ "$(echo "$OLD_VERSION" | awk -F '.' '{print $2}')" != "$(echo "$NEW_VERSION" | awk -F '.' '{print $2}')" ]; then + LABEL="semver:minor" + else + LABEL="semver:patch" + fi + + echo "old-version=${OLD_VERSION}" >> "$GITHUB_OUTPUT" + echo "new-version=${NEW_VERSION}" >> "$GITHUB_OUTPUT" + echo "version-label=${LABEL}" >> "$GITHUB_OUTPUT" + env: + DEPENDENCY: gcr.io/paketo-buildpacks/procfile + - uses: peter-evans/create-pull-request@v6 + with: + author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> + body: Bumps [`gcr.io/paketo-buildpacks/procfile`](https://gcr.io/paketo-buildpacks/procfile) from [`${{ steps.package.outputs.old-version }}`](https://gcr.io/paketo-buildpacks/procfile:${{ steps.package.outputs.old-version }}) to [`${{ steps.package.outputs.new-version }}`](https://gcr.io/paketo-buildpacks/procfile:${{ steps.package.outputs.new-version }}). + branch: update/packages + commit-message: |- + Bump gcr.io/paketo-buildpacks/procfile from ${{ steps.package.outputs.old-version }} to ${{ steps.package.outputs.new-version }} + + Bumps gcr.io/paketo-buildpacks/procfile from ${{ steps.package.outputs.old-version }} to ${{ steps.package.outputs.new-version }}. + delete-branch: true + labels: ${{ steps.package.outputs.version-label }}, type:dependency-upgrade + signoff: true + title: Bump gcr.io/paketo-buildpacks/procfile from ${{ steps.package.outputs.old-version }} to ${{ steps.package.outputs.new-version }} + token: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} diff --git a/.github/workflows/pb-update-sway.yml b/.github/workflows/pb-update-sway.yml new file mode 100644 index 0000000..fa470c4 --- /dev/null +++ b/.github/workflows/pb-update-sway.yml @@ -0,0 +1,98 @@ +name: Update sway +"on": + schedule: + - cron: 0 4 * * 4-5 + workflow_dispatch: {} +jobs: + update: + name: Update Package Dependency + runs-on: + - ubuntu-latest + steps: + - name: Docker login ghcr.io + if: ${{ (github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork) && (github.actor != 'dependabot[bot]') }} + uses: docker/login-action@v3 + with: + password: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} + registry: ghcr.io + username: ${{ github.actor }} + - uses: actions/setup-go@v5 + with: + go-version: "1.22" + - name: Install update-package-dependency + run: | + #!/usr/bin/env bash + + set -euo pipefail + + go install -ldflags="-s -w" github.com/paketo-buildpacks/libpak/cmd/update-package-dependency@latest + - uses: buildpacks/github-actions/setup-tools@v5.7.2 + with: + crane-version: 0.19.1 + yj-version: 5.1.0 + - uses: actions/checkout@v4 + - name: Update Package Dependency + id: package + run: | + #!/usr/bin/env bash + + set -euo pipefail + + NEW_VERSION=$(crane ls "${DEPENDENCY}" | grep -v latest | sort -V | tail -n 1) + + if [[ -e builder.toml ]]; then + OLD_VERSION=$(yj -tj < builder.toml | jq -r ".buildpacks[].uri | capture(\".*${DEPENDENCY}:(?.+)\") | .version") + + update-package-dependency \ + --builder-toml builder.toml \ + --id "${DEPENDENCY}" \ + --version "${NEW_VERSION}" + + git add builder.toml + fi + + if [[ -e package.toml ]]; then + OLD_VERSION=$(yj -tj < package.toml | jq -r ".dependencies[].uri | capture(\".*${DEPENDENCY}:(?.+)\") | .version") + + update-package-dependency \ + --buildpack-toml buildpack.toml \ + --id "${BP_DEPENDENCY:-$DEPENDENCY}" \ + --version "${NEW_VERSION}" + + update-package-dependency \ + --package-toml package.toml \ + --id "${PKG_DEPENDENCY:-$DEPENDENCY}" \ + --version "${NEW_VERSION}" + + git add buildpack.toml package.toml + fi + + git checkout -- . + + if [ "$(echo "$OLD_VERSION" | awk -F '.' '{print $1}')" != "$(echo "$NEW_VERSION" | awk -F '.' '{print $1}')" ]; then + LABEL="semver:major" + elif [ "$(echo "$OLD_VERSION" | awk -F '.' '{print $2}')" != "$(echo "$NEW_VERSION" | awk -F '.' '{print $2}')" ]; then + LABEL="semver:minor" + else + LABEL="semver:patch" + fi + + echo "old-version=${OLD_VERSION}" >> "$GITHUB_OUTPUT" + echo "new-version=${NEW_VERSION}" >> "$GITHUB_OUTPUT" + echo "version-label=${LABEL}" >> "$GITHUB_OUTPUT" + env: + DEPENDENCY: ghcr.io/amp-buildpacks/sway + - uses: peter-evans/create-pull-request@v6 + with: + author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> + body: Bumps [`ghcr.io/amp-buildpacks/sway`](https://ghcr.io/amp-buildpacks/sway) from [`${{ steps.package.outputs.old-version }}`](https://ghcr.io/amp-buildpacks/sway:${{ steps.package.outputs.old-version }}) to [`${{ steps.package.outputs.new-version }}`](https://ghcr.io/amp-buildpacks/sway:${{ steps.package.outputs.new-version }}). + branch: update/packages + commit-message: |- + Bump ghcr.io/amp-buildpacks/sway from ${{ steps.package.outputs.old-version }} to ${{ steps.package.outputs.new-version }} + + Bumps ghcr.io/amp-buildpacks/sway from ${{ steps.package.outputs.old-version }} to ${{ steps.package.outputs.new-version }}. + delete-branch: true + labels: ${{ steps.package.outputs.version-label }}, type:dependency-upgrade + signoff: true + title: Bump ghcr.io/amp-buildpacks/sway from ${{ steps.package.outputs.old-version }} to ${{ steps.package.outputs.new-version }} + token: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 88bbcad..2f65ee4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# Copyright (c) The Amphitheatre Authors. All rights reserved. +# Copyright 2018-2020 the original author or authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,6 +13,8 @@ # limitations under the License. bin/ +linux/ dependencies/ package/ scratch/ +