Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates github-config #388

Merged
merged 1 commit into from
Jun 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,8 @@ updates:
update-types:
- "minor"
- "patch"
exclude-patterns:
- "github.com/anchore/stereoscope"
- "github.com/testcontainers/testcontainers-go"
- "github.com/docker/docker"
- "github.com/containerd/containerd"
13 changes: 6 additions & 7 deletions .github/workflows/create-draft-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: 1.20.x
go-version: 'stable'
- name: Checkout
uses: actions/checkout@v3
- name: Run Unit Tests
Expand All @@ -49,14 +49,12 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: 1.20.x
go-version: 'stable'
- name: Checkout
uses: actions/checkout@v3
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* || true
- name: Run Integration Tests
run: ./scripts/integration.sh --use-token --builder ${{ matrix.builder }}
run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }}
env:
GIT_TOKEN: ${{ github.token }}
TMPDIR: "${{ runner.temp }}"

release:
Expand All @@ -67,10 +65,11 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: 1.20.x
go-version: 'stable'
- name: Checkout
uses: actions/checkout@v3
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* || true
with:
fetch-tags: true
- name: Reset Draft Release
id: reset
uses: paketo-buildpacks/github-config/actions/release/reset-draft@main
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: 1.20.x
go-version: 'stable'

- name: Checkout
uses: actions/checkout@v3
Expand Down
41 changes: 41 additions & 0 deletions .github/workflows/publish-releases.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Publish Draft Releases

on:
workflow_dispatch: {}
schedule:
- cron: '0 5 * * WED' # Weekly on Wednesday at 5:00 AM UTC

concurrency:
group: publish-release

jobs:
publish:
name: Publish
runs-on: ubuntu-22.04
steps:
- name: Publish Draft Release With Highest Semantic Version
id: drafts
env:
GITHUB_TOKEN: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
uses: paketo-buildpacks/github-config/actions/release/publish-drafts@main
with:
repo: ${{ github.repository }}

failure:
name: Alert on Failure
runs-on: ubuntu-22.04
needs: [ publish ]
if: ${{ always() && needs.publish.result == 'failure' }}
steps:
- name: File Failure Alert Issue
uses: paketo-buildpacks/github-config/actions/issue/file@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
repo: ${{ github.repository }}
label: "failure:release"
comment_if_exists: true
issue_title: "Failure: Publish draft releases"
issue_body: |
Publish All Draft Releases workflow [failed](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}).
comment_body: |
Another failure occurred: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
9 changes: 3 additions & 6 deletions .github/workflows/test-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: 1.20.x
go-version: 'stable'

- name: Checkout
uses: actions/checkout@v3
Expand Down Expand Up @@ -49,17 +49,14 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: 1.20.x
go-version: 'stable'

- name: Checkout
uses: actions/checkout@v3

- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* || true

- name: Run Integration Tests
run: ./scripts/integration.sh --use-token --builder ${{ matrix.builder }}
run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }}
env:
GIT_TOKEN: ${{ github.token }}
TMPDIR: "${{ runner.temp }}"

roundup:
Expand Down
93 changes: 93 additions & 0 deletions .github/workflows/update-go-mod-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Update Go version

on:
schedule:
- cron: '48 4 * * MON' # every monday at 4:48 UTC
workflow_dispatch:

concurrency: update-go

jobs:
update-go:
name: Update go toolchain in go.mod
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Checkout PR Branch
uses: paketo-buildpacks/github-config/actions/pull-request/checkout-branch@main
with:
branch: automation/go-mod-update/update-main
- name: Setup Go
id: setup-go
uses: actions/setup-go@v5
with:
go-version: 'stable'
- name: Get current go toolchain version
id: current-go-version
uses: paketo-buildpacks/github-config/actions/update-go-mod-version@main
with:
toolchain-version: ${{ steps.setup-go.outputs.go-version }}
- name: Go mod tidy
run: |
#!/usr/bin/env bash
set -euo pipefail
shopt -s inherit_errexit

echo "Before running go mod tidy"
echo "head -n10 go.mod "
head -n10 go.mod

echo "git diff"
git diff

echo "Running go mod tidy"
go mod tidy

echo "After running go mod tidy"
echo "head -n10 go.mod "
head -n10 go.mod

echo "git diff"
git diff
- name: Commit
id: commit
uses: paketo-buildpacks/github-config/actions/pull-request/create-commit@main
with:
message: "Updates go mod toolchain version to ${{ steps.setup-go.outputs.go-version }}"
pathspec: "."
keyid: ${{ secrets.PAKETO_BOT_GPG_SIGNING_KEY_ID }}
key: ${{ secrets.PAKETO_BOT_GPG_SIGNING_KEY }}

- name: Push Branch
if: ${{ steps.commit.outputs.commit_sha != '' }}
uses: paketo-buildpacks/github-config/actions/pull-request/push-branch@main
with:
branch: automation/go-mod-update/update-main

- name: Open Pull Request
if: ${{ steps.commit.outputs.commit_sha != '' }}
uses: paketo-buildpacks/github-config/actions/pull-request/open@main
with:
token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
title: "Updates go mod toolchain version to ${{ steps.setup-go.outputs.go-version }}"
branch: automation/go-mod-update/update-main

failure:
name: Alert on Failure
runs-on: ubuntu-22.04
needs: [update-go]
if: ${{ always() && needs.update-go.result == 'failure' }}
steps:
- name: File Failure Alert Issue
uses: paketo-buildpacks/github-config/actions/issue/file@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
repo: ${{ github.repository }}
label: "failure:update-go-version"
comment_if_exists: true
issue_title: "Failure: Update Go Mod Version workflow"
issue_body: |
Update Go Mod Version workflow [failed](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}).
comment_body: |
Another failure occurred: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
21 changes: 0 additions & 21 deletions scripts/.util/git.sh

This file was deleted.

6 changes: 3 additions & 3 deletions scripts/.util/tools.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"createpackage": "v1.67.2",
"jam": "v2.6.0",
"pack": "v0.31.0"
"createpackage": "v1.70.0",
"jam": "v2.7.2",
"pack": "v0.34.1"
}
11 changes: 11 additions & 0 deletions scripts/.util/tools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,13 @@ function util::tools::pack::install() {

version="$(jq -r .pack "$(dirname "${BASH_SOURCE[0]}")/tools.json")"

local pack_config_enable_experimental
if [ -f "$(dirname "${BASH_SOURCE[0]}")/../options.json" ]; then
pack_config_enable_experimental="$(jq -r .pack_config_enable_experimental "$(dirname "${BASH_SOURCE[0]}")/../options.json")"
else
pack_config_enable_experimental="false"
fi

tmp_location="/tmp/pack.tgz"
curl_args=(
"--fail"
Expand All @@ -158,6 +165,10 @@ function util::tools::pack::install() {
tar xzf "${tmp_location}" -C "${dir}"
chmod +x "${dir}/pack"

if [[ "${pack_config_enable_experimental}" == "true" ]]; then
"${dir}"/pack config experimental true
fi

rm "${tmp_location}"
else
util::print::info "Using pack $("${dir}"/pack version)"
Expand Down
30 changes: 21 additions & 9 deletions scripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,15 @@ function run::build() {

echo "Success!"

for name in detect build; do
names=("detect")

if [ -f "extension.toml" ]; then
names+=("generate")
else
names+=("build")
fi

for name in "${names[@]}"; do
printf "%s" "Linking ${name}... "

ln -sf "run" "${name}"
Expand All @@ -73,16 +81,20 @@ function cmd::build() {
for src in "${BUILDPACKDIR}"/cmd/*; do
name="$(basename "${src}")"

printf "%s" "Building ${name}... "
if [[ -f "${src}/main.go" ]]; then
printf "%s" "Building ${name}... "

GOOS="linux" \
CGO_ENABLED=0 \
go build \
-ldflags="-s -w" \
-o "${BUILDPACKDIR}/bin/${name}" \
"${src}/main.go"
GOOS="linux" \
CGO_ENABLED=0 \
go build \
-ldflags="-s -w" \
-o "${BUILDPACKDIR}/bin/${name}" \
"${src}/main.go"

echo "Success!"
echo "Success!"
else
printf "%s" "Skipping ${name}... "
fi
done
fi
}
Expand Down
26 changes: 10 additions & 16 deletions scripts/integration.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,16 @@ source "${PROGDIR}/.util/tools.sh"
# shellcheck source=SCRIPTDIR/.util/print.sh
source "${PROGDIR}/.util/print.sh"

# shellcheck source=SCRIPTDIR/.util/git.sh
source "${PROGDIR}/.util/git.sh"

# shellcheck source=SCRIPTDIR/.util/builders.sh
source "${PROGDIR}/.util/builders.sh"

function main() {
local builderArray
local builderArray token
builderArray=()
token=""

while [[ "${#}" != 0 ]]; do
case "${1}" in
--use-token|-t)
shift 1
token::fetch
;;

--help|-h)
shift 1
usage
Expand All @@ -39,6 +33,11 @@ function main() {
shift 2
;;

--token|-t)
token="${2}"
shift 2
;;

"")
# skip if the argument is empty
shift 1
Expand All @@ -53,7 +52,7 @@ function main() {
util::print::warn "** WARNING No Integration tests **"
fi

tools::install "${GIT_TOKEN:-}"
tools::install "${token}"

if [ ${#builderArray[@]} -eq 0 ]; then
util::print::title "No builders provided. Finding builders in integration.json..."
Expand Down Expand Up @@ -93,9 +92,9 @@ Runs the integration test suite.

OPTIONS
--help -h prints the command usage
--use-token -t use GIT_TOKEN from lastpass
--builder <name> -b <name> sets the name of the builder(s) that are pulled / used for testing.
Defaults to "builders" array in integration.json, if present.
--token <token> Token used to download assets from GitHub (e.g. jam, pack, etc) (optional)
USAGE
}

Expand Down Expand Up @@ -144,11 +143,6 @@ function builder_images::pull() {
docker pull "${lifecycle_image}"
}

function token::fetch() {
GIT_TOKEN="$(util::git::token::fetch)"
export GIT_TOKEN
}

function tests::run() {
util::print::title "Run Buildpack Runtime Integration Tests"
util::print::info "Using ${1} as builder..."
Expand Down
Loading