Skip to content

Commit

Permalink
Merge pull request #126 from koyeb/develop
Browse files Browse the repository at this point in the history
Update builders, bootstrap heroku-22
  • Loading branch information
bchatelard committed Dec 16, 2023
2 parents c82cd65 + 15150b2 commit b2ca955
Show file tree
Hide file tree
Showing 9 changed files with 352 additions and 291 deletions.
53 changes: 34 additions & 19 deletions .github/workflows/build-and-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,13 @@ on:
push:
branches:
- main
- develop
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
pull_request:
branches:
- main
- develop
repository_dispatch:
types:
- pack-release
release:
types: [published]

jobs:
build-linux:
Expand Down Expand Up @@ -51,15 +50,17 @@ jobs:
run: |
PACK_CMD=./pack make images
- name: Publish images
if: (github.event_name == 'repository_dispatch') || (github.event_name == 'push' && github.ref == 'refs/heads/main')
if: ${{ startsWith(github.ref, 'refs/tags/') }}
run: |
# publish base images
docker tag koyeb/pack:20-cnb registry.prod.koyeb.com/koyeb/pack:20-cnb
docker tag koyeb/pack:20-cnb-build registry.prod.koyeb.com/koyeb/pack:20-cnb-build
docker push koyeb/pack:20-cnb
docker push koyeb/pack:20-cnb-build
docker push registry.prod.koyeb.com/koyeb/pack:20-cnb
docker push registry.prod.koyeb.com/koyeb/pack:20-cnb-build
# push heroku 20 and 22
for version in "20" "22"; do
docker tag koyeb/pack:$version-cnb registry.prod.koyeb.com/koyeb/pack:$version-cnb
docker tag koyeb/pack:$version-cnb-build registry.prod.koyeb.com/koyeb/pack:$version-cnb-build
docker push koyeb/pack:$version-cnb
docker push koyeb/pack:$version-cnb-build
docker push registry.prod.koyeb.com/koyeb/pack:$version-cnb
docker push registry.prod.koyeb.com/koyeb/pack:$version-cnb-build
done
- name: Build
run: |
PACK_CMD=./pack make build-heroku
Expand All @@ -71,26 +72,40 @@ jobs:
run: |
PACK_CMD=$PWD/pack make test
- name: Publish beta buildpack
if: (github.event_name == 'push' && github.ref == 'refs/heads/develop')
if: (github.event_name == 'push' && github.ref == 'refs/heads/main')
run: |
# publish builder
# publish builder heroku-20 and flag as beta
docker tag koyeb/builder:heroku-20 koyeb/builder:beta
docker tag registry.prod.koyeb.com/koyeb/builder:heroku-20 registry.prod.koyeb.com/koyeb/builder:beta
# publish builder heroku-22
docker tag koyeb/builder:heroku-22 koyeb/builder:beta-22
docker tag registry.prod.koyeb.com/koyeb/builder:heroku-22 registry.prod.koyeb.com/koyeb/builder:beta-22
docker push koyeb/builder:beta
docker push registry.prod.koyeb.com/koyeb/builder:beta
- name: Publish buildpack
if: (github.event_name == 'repository_dispatch') || (github.event_name == 'push' && github.ref == 'refs/heads/main')
if: ${{ startsWith(github.ref, 'refs/tags/') }}
run: |
# publish builder
# publish builder heroku 20 is the default
docker tag koyeb/builder:heroku-20 koyeb/builder:latest
docker tag koyeb/builder:heroku-20 koyeb/builder:heroku
docker tag registry.prod.koyeb.com/koyeb/builder:heroku-20 registry.prod.koyeb.com/koyeb/builder:latest
docker tag registry.prod.koyeb.com/koyeb/builder:heroku-20 registry.prod.koyeb.com/koyeb/builder:heroku
for tag in latest heroku heroku-20; do
for tag in latest heroku heroku-20 heroku-22; do
docker push koyeb/builder:$tag
docker push registry.prod.koyeb.com/koyeb/builder:$tag
done
- name: Create Release
if: ${{ startsWith(github.ref, 'refs/tags/') }}
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
- name: Clean up
run: make clean-linux
run: make clean
59 changes: 59 additions & 0 deletions .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: E2E tests

on:
schedule:
- cron: "9 10 * * *"
workflow_dispatch:
workflow_run:
workflows: ["Build and Deploy"]
types:
- completed


jobs:
test:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest

strategy:
matrix:
repo: [example-nextjs, example-django, example-flask, example-go-gin, example-rails, example-laravel]
include:
- repo: example-nextjs
port: 3000
- repo: example-rails
port: 5000
- repo: example-django
port: 8000
checks: "tcp"
- repo: example-flask
port: 8000
- repo: example-go-gin
port: 8000
- repo: example-laravel
port: 8000
checks: "tcp"
steps:
- name: Install and configure the Koyeb CLI
uses: koyeb-community/install-koyeb-cli@v2
with:
api_token: "${{ secrets.KOYEB_STAGING_API_TOKEN }}"
api_url: "${{ secrets.KOYEB_API_URL }}"
github_token: "${{ secrets.GITHUB_TOKEN }}"

- name: "Build ${{matrix.repo}}"
uses: koyeb/action-git-deploy@v1
with:
git-url: "github.com/koyeb/${{matrix.repo}}"
git-branch: main
app-name: "${{ matrix.repo }}-${{ github.ref_name }}"
service-ports: "${{matrix.port}}:http"
service-routes: "/:${{matrix.port}}"
service-checks: "${{matrix.port}}:${{matrix.checks != '' && matrix.checks || 'http:/'}}"
service-env: "${{matrix.env}}"


- name: "Cleanup ${{matrix.repo}}"
uses: koyeb/action-git-deploy/cleanup@v1
with:
app-name: '${{matrix.repo}}-${{ github.ref_name }}'
11 changes: 9 additions & 2 deletions .github/workflows/generate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
- name: Clone
uses: actions/checkout@v2
with:
ref: refs/heads/develop
ref: refs/heads/main
- name: install yj
run: |
echo "Installing yj to /usr/local/bin"
Expand All @@ -21,16 +21,23 @@ jobs:
- name: Checkout heroku buildpacks
uses: actions/checkout@v2
with:
repository: heroku/builder
repository: heroku/cnb-builder-images
path: .source/heroku
- name: copy
run: |
cp .source/heroku/buildpacks-20/builder.toml builders/heroku/20/builder.toml
cp .source/heroku/builder-22/builder.toml builders/heroku/22/builder.toml
- name: patch
run: |
make patch
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.PAT }}
body: |
Auto-generated by [create-pull-request]
- name: Enable Pull Request Automerge
run: gh pr merge --merge --auto "${{ steps.cpr.outputs.pull-request-number }}"
env:
GH_TOKEN: ${{ secrets.PAT }}
9 changes: 0 additions & 9 deletions .mergify.yml

This file was deleted.

24 changes: 10 additions & 14 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,35 @@ PACK_BUILD_FLAGS?=--trust-builder
PACK_CMD?=pack
REGISTRY?=koyeb

clean: clean-linux

####################
## Linux
####################

patch-builder-run-image:
./patch-builder.sh $(SAMPLES_ROOT)/builders/heroku/20/builder.toml ${REGISTRY}
./patch-builder.sh $(SAMPLES_ROOT)/builders/heroku/22/builder.toml ${REGISTRY}

patch:
./patch.sh $(SAMPLES_ROOT)/builders/heroku/22/builder.toml
./patch.sh $(SAMPLES_ROOT)/builders/heroku/20/builder.toml
./patch.sh $(SAMPLES_ROOT)/builders/paketo/18/builder.toml

images:
@docker build --pull -f Dockerfile.build --build-arg STACK=heroku-20 --build-arg BASE_IMAGE=heroku/heroku:20-build -t koyeb/pack:20-cnb-build .
@docker build --pull -f Dockerfile.run --build-arg STACK=heroku-20 --build-arg BASE_IMAGE=heroku/heroku:20 -t koyeb/pack:20-cnb .
@docker build --pull -f Dockerfile.build --build-arg STACK=heroku-22 --build-arg BASE_IMAGE=heroku/heroku:22-build -t koyeb/pack:22-cnb-build .
@docker build --pull -f Dockerfile.run --build-arg STACK=heroku-22 --build-arg BASE_IMAGE=heroku/heroku:22 -t koyeb/pack:22-cnb .

build-heroku: build-heroku-20 build-heroku-22

build-heroku: build-heroku-20
build-heroku-22: build-root
@echo "> Building 'heroku-22' builder..."
$(PACK_CMD) builder create ${REGISTRY}/builder:heroku-22 --config $(SAMPLES_ROOT)/builders/heroku/22/builder.toml $(PACK_FLAGS)

build-heroku-20: build-root
@echo "> Building 'heroku-20' builder..."
$(PACK_CMD) builder create ${REGISTRY}/builder:heroku-20 --config $(SAMPLES_ROOT)/builders/heroku/20/builder.toml $(PACK_FLAGS)

build-paketo: build-paketo-18

build-paketo-18: build-root
@echo "> Building 'paketo-18' builder..."
$(PACK_CMD) builder create koyeb/builder:paketo-18 --config $(SAMPLES_ROOT)/builders/paketo/18/builder.toml $(PACK_FLAGS)

clean-linux:
@echo "> Removing builders..."
docker rmi koyeb/builder:paketo-18 || true

clean:
@echo "> Removing '.tmp'"
rm -rf .tmp

Expand Down
Loading

0 comments on commit b2ca955

Please sign in to comment.