Skip to content

Propagate options-only route changes immediately in route-emitter #124

Propagate options-only route changes immediately in route-emitter

Propagate options-only route changes immediately in route-emitter #124

Workflow file for this run

name: unit-integration-tests
on:
pull_request:
types: [opened, synchronize, reopened, labeled]
branches:
- develop
paths:
- 'src/**'
- 'packages/**'
- 'jobs/**'
- 'config/**'
- 'scripts/**'
- '.github/workflows/**'
- '.github/helpers/**'
env:
MAPPING: |
build_nats_server=src/code.cloudfoundry.org/vendor/github.com/nats-io/nats-server/v2
FLAGS: |
--keep-going
--trace
-r
--fail-on-pending
--randomize-all
--nodes=7
--race
--timeout 30m
--flake-attempts 2
RUN_AS: root
VERIFICATIONS: |
verify_go repo/$DIR
verify_gofmt repo/$DIR
verify_govet repo/$DIR
verify_staticcheck repo/$DIR
FUNCTIONS: ci/diego-release/helpers/build-binaries.bash
DB: ""
jobs:
repo-clone:
runs-on: ubuntu-latest
steps:
- name: diego-release-repo
uses: actions/checkout@v4.3.1
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
submodules: recursive
path: repo
- name: Check out wg-appruntime code
uses: actions/checkout@v4.3.1
with:
repository: cloudfoundry/wg-app-platform-runtime-ci
path: ci
- name: zip repo artifacts
run: |
tar -czf repo-artifact.tar.gz repo
tar -czf ci-artifact.tar.gz ci
- name: upload artifact
uses: actions/upload-artifact@v4
with:
name: repo
path: |
repo-artifact.tar.gz
ci-artifact.tar.gz
determine-image-tag:
if: contains(github.event.pull_request.labels.*.name, 'ready-to-run')
runs-on: ubuntu-latest
outputs:
go_version: ${{ steps.get-version.outputs.go_version }}
steps:
- name: checkout ci repo
uses: actions/checkout@v4.3.1
with:
repository: cloudfoundry/wg-app-platform-runtime-ci
sparse-checkout: go-version.json
sparse-checkout-cone-mode: false
- name: get-version
id: get-version
run: |
version=$(jq -r '.releases["diego"] // .default' go-version.json)
echo "go_version=${version}" >> "$GITHUB_OUTPUT"
template-tests:
runs-on: ubuntu-latest
needs: [repo-clone]
container: cloudfoundry/tas-runtime-build:latest
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: repo
- run: |
tar -xzvf repo-artifact.tar.gz
tar -xzvf ci-artifact.tar.gz
- name: template-tests
run: |
"${GITHUB_WORKSPACE}"/ci/shared/tasks/run-tests-templates/task.bash
lint-repo:
runs-on: ubuntu-latest
needs: [repo-clone]
container: cloudfoundry/tas-runtime-build:latest
env:
LINTERS: |
sync-package-specs.bash
sync-submodule-config.bash
match-golang-os-package-versions.bash
check-envoy-versions.bash
check-for-windows-drift.bash
check-proto-files.bash
check-metrics-documentation.bash
check-expiring-certs.bash
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: repo
- run: |
tar -xzvf repo-artifact.tar.gz
tar -xzvf ci-artifact.tar.gz
- name: lint-repo
run: |
"${GITHUB_WORKSPACE}"/ci/shared/tasks/lint-repo/task.bash
test-repos-withoutdb:
if: contains(github.event.pull_request.labels.*.name, 'ready-to-run')
runs-on: ubuntu-latest
needs: [repo-clone, determine-image-tag]
env:
BUILD_IMAGE: cloudfoundry/tas-runtime-build:${{ needs.determine-image-tag.outputs.go_version }}
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: repo
- run: |
tar -xzvf repo-artifact.tar.gz
tar -xzvf ci-artifact.tar.gz
- name: pull image
run: docker pull "$BUILD_IMAGE"
- name: build binaries
run: |
repo/.github/helpers/build.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: auction
env:
DIR: src/code.cloudfoundry.org/auction
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: executor
env:
DIR: src/code.cloudfoundry.org/executor
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: diego-ssh
env:
DIR: src/code.cloudfoundry.org/diego-ssh
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: fileserver
env:
DIR: src/code.cloudfoundry.org/fileserver
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: healthcheck
env:
DIR: src/code.cloudfoundry.org/healthcheck
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: buildpackapplifecycle
env:
DIR: src/code.cloudfoundry.org/buildpackapplifecycle
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: cacheddownloader
env:
DIR: src/code.cloudfoundry.org/cacheddownloader
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: dockerapplifecycle
env:
DIR: src/code.cloudfoundry.org/dockerapplifecycle
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: ecrhelper
env:
DIR: src/code.cloudfoundry.org/ecrhelper
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: localdriver
env:
DIR: src/code.cloudfoundry.org/localdriver
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: operationq
env:
DIR: src/code.cloudfoundry.org/operationq
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: volman
env:
DIR: src/code.cloudfoundry.org/volman
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: workpool
env:
DIR: src/code.cloudfoundry.org/workpool
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
test-on-postgres:
if: contains(github.event.pull_request.labels.*.name, 'ready-to-run')
runs-on: ubuntu-latest
needs: [repo-clone, determine-image-tag]
env:
BUILD_IMAGE: cloudfoundry/tas-runtime-postgres:${{ needs.determine-image-tag.outputs.go_version }}
DB_USER: postgres
DB_PASSWORD: ""
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: repo
- run: |
tar -xzvf repo-artifact.tar.gz
tar -xzvf ci-artifact.tar.gz
- name: pull image
run: docker pull "$BUILD_IMAGE"
- name: build binaries
run: |
repo/.github/helpers/build.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: auctioneer-postgres
env:
DIR: src/code.cloudfoundry.org/auctioneer
DB: postgres
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: rep-postgres
env:
DIR: src/code.cloudfoundry.org/rep
DB: postgres
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: route-emitter-postgres
env:
DIR: src/code.cloudfoundry.org/route-emitter
DB: postgres
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: cfdot-postgres
env:
DIR: src/code.cloudfoundry.org/cfdot
DB: postgres
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
test-on-mysql-8-0:
if: contains(github.event.pull_request.labels.*.name, 'ready-to-run')
runs-on: ubuntu-latest
needs: [repo-clone, determine-image-tag]
env:
BUILD_IMAGE: cloudfoundry/tas-runtime-mysql-8.0:${{ needs.determine-image-tag.outputs.go_version }}
DB_USER: root
DB_PASSWORD: password
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: repo
- run: |
tar -xzvf repo-artifact.tar.gz
tar -xzvf ci-artifact.tar.gz
- name: pull image
run: docker pull "$BUILD_IMAGE"
- name: build binaries
run: |
repo/.github/helpers/build.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: auctioneer-mysql
env:
DIR: src/code.cloudfoundry.org/auctioneer
DB: mysql
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: rep-mysql
env:
DIR: src/code.cloudfoundry.org/rep
DB: mysql
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: route-emitter-mysql
env:
DIR: src/code.cloudfoundry.org/route-emitter
DB: mysql
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: cfdot-mysql
env:
DIR: src/code.cloudfoundry.org/cfdot
DB: mysql
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
test-on-mysql-8-4:
if: contains(github.event.pull_request.labels.*.name, 'ready-to-run')
runs-on: ubuntu-latest
needs: [repo-clone, determine-image-tag]
env:
BUILD_IMAGE: cloudfoundry/tas-runtime-mysql-8.4:${{ needs.determine-image-tag.outputs.go_version }}
DB_USER: root
DB_PASSWORD: password
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: repo
- run: |
tar -xzvf repo-artifact.tar.gz
tar -xzvf ci-artifact.tar.gz
- name: pull image
run: docker pull "$BUILD_IMAGE"
- name: build binaries
run: |
repo/.github/helpers/build.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: auctioneer-mysql
env:
DIR: src/code.cloudfoundry.org/auctioneer
DB: mysql
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: rep-mysql
env:
DIR: src/code.cloudfoundry.org/rep
DB: mysql
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: route-emitter-mysql
env:
DIR: src/code.cloudfoundry.org/route-emitter
DB: mysql
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: cfdot-mysql
env:
DIR: src/code.cloudfoundry.org/cfdot
DB: mysql
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
test-on-mysql-9-7:
if: contains(github.event.pull_request.labels.*.name, 'ready-to-run')
runs-on: ubuntu-latest
needs: [repo-clone, determine-image-tag]
env:
BUILD_IMAGE: cloudfoundry/tas-runtime-mysql-9.7:${{ needs.determine-image-tag.outputs.go_version }}
DB_USER: root
DB_PASSWORD: password
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: repo
- run: |
tar -xzvf repo-artifact.tar.gz
tar -xzvf ci-artifact.tar.gz
- name: pull image
run: docker pull "$BUILD_IMAGE"
- name: build binaries
run: |
repo/.github/helpers/build.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: auctioneer-mysql
env:
DIR: src/code.cloudfoundry.org/auctioneer
DB: mysql
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: rep-mysql
env:
DIR: src/code.cloudfoundry.org/rep
DB: mysql
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: route-emitter-mysql
env:
DIR: src/code.cloudfoundry.org/route-emitter
DB: mysql
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"
- name: cfdot-mysql
env:
DIR: src/code.cloudfoundry.org/cfdot
DB: mysql
run: |
repo/.github/helpers/test.bash ${{ github.workspace }} "$BUILD_IMAGE"