Skip to content

Use production-ready Dockerfile template for Go images #897

Use production-ready Dockerfile template for Go images

Use production-ready Dockerfile template for Go images #897

name: Generate CI config
on:
pull_request:
branches:
- '**'
push:
branches:
- 'main'
schedule:
- cron: "0 6 * * *" # Daily at 06:00.
workflow_dispatch: # Manual workflow trigger
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
generate-ci:
name: generate-ci
runs-on: ubuntu-latest
env:
GOPATH: ${{ github.workspace }}
steps:
- if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[backstage-plugins] Clone repository'
uses: actions/checkout@v4
with:
path: ./src/github.com/openshift-knative/hack/openshift-knative/backstage-plugins
repository: openshift-knative/backstage-plugins
token: ${{ secrets.SERVERLESS_QE_ROBOT }}
- if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[eventing-hyperfoil-benchmark] Clone repository'
uses: actions/checkout@v4
with:
path: ./src/github.com/openshift-knative/hack/openshift-knative/eventing-hyperfoil-benchmark
repository: openshift-knative/eventing-hyperfoil-benchmark
token: ${{ secrets.SERVERLESS_QE_ROBOT }}
- if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[eventing-istio] Clone repository'
uses: actions/checkout@v4
with:
path: ./src/github.com/openshift-knative/hack/openshift-knative/eventing-istio
repository: openshift-knative/eventing-istio
token: ${{ secrets.SERVERLESS_QE_ROBOT }}
- if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[eventing-kafka-broker] Clone repository'
uses: actions/checkout@v4
with:
path: ./src/github.com/openshift-knative/hack/openshift-knative/eventing-kafka-broker
repository: openshift-knative/eventing-kafka-broker
token: ${{ secrets.SERVERLESS_QE_ROBOT }}
- if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[eventing] Clone repository'
uses: actions/checkout@v4
with:
path: ./src/github.com/openshift-knative/hack/openshift-knative/eventing
repository: openshift-knative/eventing
token: ${{ secrets.SERVERLESS_QE_ROBOT }}
- if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[serverless-operator] Clone repository'
uses: actions/checkout@v4
with:
path: ./src/github.com/openshift-knative/hack/openshift-knative/serverless-operator
repository: openshift-knative/serverless-operator
token: ${{ secrets.SERVERLESS_QE_ROBOT }}
- if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[net-istio] Clone repository'
uses: actions/checkout@v4
with:
path: ./src/github.com/openshift-knative/hack/openshift-knative/net-istio
repository: openshift-knative/net-istio
token: ${{ secrets.SERVERLESS_QE_ROBOT }}
- if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[net-kourier] Clone repository'
uses: actions/checkout@v4
with:
path: ./src/github.com/openshift-knative/hack/openshift-knative/net-kourier
repository: openshift-knative/net-kourier
token: ${{ secrets.SERVERLESS_QE_ROBOT }}
- if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[serving] Clone repository'
uses: actions/checkout@v4
with:
path: ./src/github.com/openshift-knative/hack/openshift-knative/serving
repository: openshift-knative/serving
token: ${{ secrets.SERVERLESS_QE_ROBOT }}
- name: Install prerequisites
env:
YQ_VERSION: 3.4.0
run: |
sudo wget https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64 -O /usr/bin/yq
sudo chmod +x /usr/bin/yq
sudo mv /usr/bin/yq /usr/local/bin/yq
- name: Checkout openshift-knative/hack
uses: actions/checkout@v4
with:
path: ./src/github.com/openshift-knative/hack
- name: Setup Golang
uses: actions/setup-go@v5
with:
go-version-file: ./src/github.com/openshift-knative/hack/go.mod
- name: Install YAML2JSON
run: go install github.com/bronze1man/yaml2json@latest
- name: Convert configurations to JSON
working-directory: ./src/github.com/openshift-knative/hack
run: find config/*.yaml | xargs -I{} sh -c "yaml2json < {} > {}.json"
- name: Checkout openshift/release
if: ${{ github.event_name == 'pull_request' }}
uses: actions/checkout@v4
with:
ref: 'master'
repository: 'openshift/release'
path: ./src/github.com/openshift-knative/hack/openshift/release
- name: Checkout openshift/release
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
uses: actions/checkout@v4
with:
ref: 'master'
repository: 'openshift/release'
path: ./src/github.com/openshift-knative/hack/openshift/release
token: ${{ secrets.SERVERLESS_QE_ROBOT }}
- name: Configure Git user
run: |
git config --global user.email "[email protected]"
git config --global user.name "serverless-qe"
- name: Generate CI
working-directory: ./src/github.com/openshift-knative/hack
run: make generate-ci-no-clean ARGS=--branch=master
- name: Create Pull Request - openshift/release
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
run: |
set -x
git remote add fork "https://github.com/serverless-qe/release.git"
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/release.git" sync-serverless-ci:sync-serverless-ci -f
gh pr create --base master --head serverless-qe:sync-serverless-ci --fill-verbose || true
working-directory: ./src/github.com/openshift-knative/hack/openshift/release
- name: Create Pull Request - openshift-knative/hack
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
run: |
set -x
git remote add fork "https://github.com/serverless-qe/hack.git"
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/hack.git" sync-konflux/main:sync-konflux/main -f
gh pr create --base main --head serverless-qe:sync-konflux/main --title "[main] Add Konflux configurations" --body "Add Konflux components and pipelines" || true
# Use the repository cloned by the prowgen tool
working-directory: ./src/github.com/openshift-knative/hack/openshift-knative/hack
- env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[eventing-istio - release-next] Create Konflux PR'
run: |
set -x
git remote add fork "https://github.com/serverless-qe/eventing-istio.git" || true # ignore: already exists errors
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/eventing-istio.git" sync-konflux/release-next:sync-konflux/release-next -f
gh pr create --base main --head serverless-qe:sync-konflux/release-next --title "[main] Add Konflux configurations" --body "Add Konflux components and pipelines" || true
working-directory: ./src/github.com/openshift-knative/hack/openshift-knative/eventing-istio
- env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[eventing-istio - release-v1.15] Create Konflux PR'
run: |
set -x
git remote add fork "https://github.com/serverless-qe/eventing-istio.git" || true # ignore: already exists errors
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/eventing-istio.git" sync-konflux/release-v1.15:sync-konflux/release-v1.15 -f
gh pr create --base release-v1.15 --head serverless-qe:sync-konflux/release-v1.15 --title "[release-v1.15] Add Konflux configurations" --body "Add Konflux components and pipelines" || true
working-directory: ./src/github.com/openshift-knative/hack/openshift-knative/eventing-istio
- env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[eventing-kafka-broker - release-next] Create Konflux PR'
run: |
set -x
git remote add fork "https://github.com/serverless-qe/eventing-kafka-broker.git" || true # ignore: already exists errors
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/eventing-kafka-broker.git" sync-konflux/release-next:sync-konflux/release-next -f
gh pr create --base main --head serverless-qe:sync-konflux/release-next --title "[main] Add Konflux configurations" --body "Add Konflux components and pipelines" || true
working-directory: ./src/github.com/openshift-knative/hack/openshift-knative/eventing-kafka-broker
- env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[eventing-kafka-broker - release-v1.15] Create Konflux PR'
run: |
set -x
git remote add fork "https://github.com/serverless-qe/eventing-kafka-broker.git" || true # ignore: already exists errors
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/eventing-kafka-broker.git" sync-konflux/release-v1.15:sync-konflux/release-v1.15 -f
gh pr create --base release-v1.15 --head serverless-qe:sync-konflux/release-v1.15 --title "[release-v1.15] Add Konflux configurations" --body "Add Konflux components and pipelines" || true
working-directory: ./src/github.com/openshift-knative/hack/openshift-knative/eventing-kafka-broker
- env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[eventing - release-next] Create Konflux PR'
run: |
set -x
git remote add fork "https://github.com/serverless-qe/eventing.git" || true # ignore: already exists errors
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/eventing.git" sync-konflux/release-next:sync-konflux/release-next -f
gh pr create --base main --head serverless-qe:sync-konflux/release-next --title "[main] Add Konflux configurations" --body "Add Konflux components and pipelines" || true
working-directory: ./src/github.com/openshift-knative/hack/openshift-knative/eventing
- env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[eventing - release-v1.15] Create Konflux PR'
run: |
set -x
git remote add fork "https://github.com/serverless-qe/eventing.git" || true # ignore: already exists errors
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/eventing.git" sync-konflux/release-v1.15:sync-konflux/release-v1.15 -f
gh pr create --base release-v1.15 --head serverless-qe:sync-konflux/release-v1.15 --title "[release-v1.15] Add Konflux configurations" --body "Add Konflux components and pipelines" || true
working-directory: ./src/github.com/openshift-knative/hack/openshift-knative/eventing
- env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[serverless-operator - main] Create Konflux PR'
run: |
set -x
git remote add fork "https://github.com/serverless-qe/serverless-operator.git" || true # ignore: already exists errors
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/serverless-operator.git" sync-konflux/main:sync-konflux/main -f
gh pr create --base main --head serverless-qe:sync-konflux/main --title "[main] Add Konflux configurations" --body "Add Konflux components and pipelines" || true
working-directory: ./src/github.com/openshift-knative/hack/openshift-knative/serverless-operator
- env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[net-istio - release-v1.15] Create Konflux PR'
run: |
set -x
git remote add fork "https://github.com/serverless-qe/net-istio.git" || true # ignore: already exists errors
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/net-istio.git" sync-konflux/release-v1.15:sync-konflux/release-v1.15 -f
gh pr create --base release-v1.15 --head serverless-qe:sync-konflux/release-v1.15 --title "[release-v1.15] Add Konflux configurations" --body "Add Konflux components and pipelines" || true
working-directory: ./src/github.com/openshift-knative/hack/openshift-knative/net-istio
- env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[net-kourier - release-v1.15] Create Konflux PR'
run: |
set -x
git remote add fork "https://github.com/serverless-qe/net-kourier.git" || true # ignore: already exists errors
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/net-kourier.git" sync-konflux/release-v1.15:sync-konflux/release-v1.15 -f
gh pr create --base release-v1.15 --head serverless-qe:sync-konflux/release-v1.15 --title "[release-v1.15] Add Konflux configurations" --body "Add Konflux components and pipelines" || true
working-directory: ./src/github.com/openshift-knative/hack/openshift-knative/net-kourier
- env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[serving - release-next] Create Konflux PR'
run: |
set -x
git remote add fork "https://github.com/serverless-qe/serving.git" || true # ignore: already exists errors
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/serving.git" sync-konflux/release-next:sync-konflux/release-next -f
gh pr create --base main --head serverless-qe:sync-konflux/release-next --title "[main] Add Konflux configurations" --body "Add Konflux components and pipelines" || true
working-directory: ./src/github.com/openshift-knative/hack/openshift-knative/serving
- env:
GH_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
GITHUB_TOKEN: ${{ secrets.SERVERLESS_QE_ROBOT }}
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && github.ref_name == 'main' }}
name: '[serving - release-v1.15] Create Konflux PR'
run: |
set -x
git remote add fork "https://github.com/serverless-qe/serving.git" || true # ignore: already exists errors
git push "https://serverless-qe:${GH_TOKEN}@github.com/serverless-qe/serving.git" sync-konflux/release-v1.15:sync-konflux/release-v1.15 -f
gh pr create --base release-v1.15 --head serverless-qe:sync-konflux/release-v1.15 --title "[release-v1.15] Add Konflux configurations" --body "Add Konflux components and pipelines" || true
working-directory: ./src/github.com/openshift-knative/hack/openshift-knative/serving