-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #7 from amp-buildpacks/update/pipeline
- Loading branch information
Showing
11 changed files
with
685 additions
and
0 deletions.
There are no files selected for viewing
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
version: 2 | ||
updates: | ||
- package-ecosystem: gomod | ||
directory: / | ||
schedule: | ||
interval: daily | ||
ignore: | ||
- dependency-name: github.com/onsi/gomega | ||
labels: | ||
- semver:patch | ||
- type:dependency-upgrade |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
1.34.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,231 @@ | ||
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@v2 | ||
with: | ||
password: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
- uses: actions/setup-go@v4 | ||
with: | ||
go-version: "1.20" | ||
- 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 | ||
- 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 pack | ||
run: | | ||
#!/usr/bin/env bash | ||
set -euo pipefail | ||
echo "Installing pack ${PACK_VERSION}" | ||
mkdir -p "${HOME}"/bin | ||
echo "${HOME}/bin" >> "${GITHUB_PATH}" | ||
curl \ | ||
--location \ | ||
--show-error \ | ||
--silent \ | ||
"https://github.com/buildpacks/pack/releases/download/v${PACK_VERSION}/pack-v${PACK_VERSION}-linux.tgz" \ | ||
| tar -C "${HOME}"/bin -xz pack | ||
env: | ||
PACK_VERSION: 0.29.0 | ||
- 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@v3 | ||
- if: ${{ false }} | ||
uses: actions/cache@v3 | ||
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 [ -z "${GITHUB_REF+set}" ]; then | ||
echo "GITHUB_REF set to [${GITHUB_REF-<unset>}], but should never be empty or unset" | ||
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 | ||
[[ -e ${PACKAGE_FILE} ]] && cp ${PACKAGE_FILE} "${HOME}"/package.toml | ||
printf '[buildpack]\nuri = "%s"\n\n[platform]\nos = "%s"\n' "${HOME}"/buildpack "${OS}" >> "${HOME}"/package.toml | ||
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 | ||
PACKAGE_LIST=($PACKAGES) | ||
# Extract first repo (Docker Hub) as the main to package & register | ||
PACKAGE=${PACKAGE_LIST[0]} | ||
if [[ "${PUBLISH:-x}" == "true" ]]; then | ||
pack buildpack package \ | ||
"${PACKAGE}:${VERSION}" \ | ||
--config "${HOME}"/package.toml \ | ||
--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 buildpack package \ | ||
"${PACKAGE}:${VERSION}" \ | ||
--config "${HOME}"/package.toml \ | ||
--format "${FORMAT}" | ||
fi | ||
env: | ||
PACKAGES: ghcr.io/amp-buildpacks/scarb | ||
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 PLACEHOLDER -->/\`${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:4.0.1 | ||
with: | ||
address: ghcr.io/amp-buildpacks/scarb@${{ steps.package.outputs.digest }} | ||
id: amp-buildpacks/scarb | ||
token: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} | ||
version: ${{ steps.version.outputs.version }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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@v4 | ||
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@v4 | ||
with: | ||
count: 1 | ||
labels: type:bug, type:dependency-upgrade, type:documentation, type:enhancement, type:question, type:task | ||
mode: exactly |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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@v3 | ||
- uses: micnncim/action-label-syncer@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.AMP_BUILDPACKS_BOT_GITHUB_TOKEN }} |
Oops, something went wrong.