Skip to content
Open
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
106 changes: 28 additions & 78 deletions .github/workflows/call-docker-build-result.yaml
Original file line number Diff line number Diff line change
@@ -1,82 +1,32 @@
name: Build Result
# template source: https://github.com/dockersamples/.github/blob/main/templates/call-docker-build.yaml
name: Build and Scan Result Image

on:
# we want pull requests so we can build(test) but not push to image registry
push:
branches:
- 'main'
# only build when important files change
paths:
- 'result/**'
- '.github/workflows/call-docker-build-result.yaml'
pull_request:
branches:
- 'main'
# only build when important files change
paths:
- 'result/**'
- '.github/workflows/call-docker-build-result.yaml'
workflow_dispatch:

jobs:
call-docker-build:

name: Result Call Docker Build

uses: dockersamples/.github/.github/workflows/reusable-docker-build.yaml@main

permissions:
contents: read
packages: write # needed to push docker image to ghcr.io
pull-requests: write # needed to create and update comments in PRs

secrets:

# Only needed if with:dockerhub-enable is true below
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }}

# Only needed if with:dockerhub-enable is true below
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}

with:

### REQUIRED
### ENABLE ONE OR BOTH REGISTRIES
### tell docker where to push.
### NOTE if Docker Hub is set to true, you must set secrets above and also add account/repo/tags below
dockerhub-enable: true
ghcr-enable: true

### REQUIRED
### A list of the account/repo names for docker build. List should match what's enabled above
### defaults to:
image-names: |
ghcr.io/dockersamples/example-voting-app-result
dockersamples/examplevotingapp_result

### REQUIRED set rules for tagging images, based on special action syntax:
### https://github.com/docker/metadata-action#tags-input
### defaults to:
tag-rules: |
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
type=raw,value=before,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
type=raw,value=after,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
type=ref,event=pr

### path to where docker should copy files into image
### defaults to root of repository (.)
context: result

### Dockerfile alternate name. Default is Dockerfile (relative to context path)
# file: Containerfile

### build stage to target, defaults to empty, which builds to last stage in Dockerfile
# target:

### platforms to build for, defaults to linux/amd64
### other options: linux/amd64,linux/arm64,linux/arm/v7
platforms: linux/amd64,linux/arm64,linux/arm/v7

### Create a PR comment with image tags and labels
### defaults to false
# comment-enable: false
build-and-scan:
name: Build and Scan Result Image
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Build Image Locally
run: docker build -t example-voting-app-result:latest ./result

- name: Scan Image with Sysdig
id: scan
uses: sysdiglabs/scan-action@v6
with:
image-tag: example-voting-app-result:latest
sysdig-secure-token: ${{ secrets.SECURE_API_TOKEN }}
sysdig-secure-url: ${{ secrets.SECURE_API_URL }}
stop-on-failed-policy-eval: false
stop-on-processing-error: true

- name: Upload SARIF Results
if: success() || failure()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: ${{ github.workspace }}/sarif.json
53 changes: 24 additions & 29 deletions .github/workflows/call-docker-build-vote.yaml
Original file line number Diff line number Diff line change
@@ -1,40 +1,35 @@
name: Build Vote
# template source: https://github.com/dockersamples/.github/blob/main/templates/call-docker-build.yaml
name: Build and Scan Vote Image

on:
# we want pull requests so we can build(test) but not push to image registry
push:
branches:
- 'main'
# only build when important files change
paths:
- 'vote/**'
- '.github/workflows/call-docker-build-vote.yaml'
pull_request:
branches:
- 'main'
# only build when important files change
paths:
- 'vote/**'
- '.github/workflows/call-docker-build-vote.yaml'
workflow_dispatch:

jobs:
call-docker-build:
build-and-scan:
name: Build and Scan Vote Image
runs-on: ubuntu-latest

name: Vote Call Docker Build
steps:
- name: Checkout Code
uses: actions/checkout@v4

uses: dockersamples/.github/.github/workflows/reusable-docker-build.yaml@main
- name: Build Image Locally
run: docker build -t example-voting-app-vote:latest ./vote

permissions:
contents: read
packages: write # needed to push docker image to ghcr.io
pull-requests: write # needed to create and update comments in PRs

secrets:

# Only needed if with:dockerhub-enable is true below
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }}
- name: Scan Image with Sysdig
id: scan
uses: sysdiglabs/scan-action@v6
with:
image-tag: example-voting-app-vote:latest
sysdig-secure-token: ${{ secrets.SECURE_API_TOKEN }}
sysdig-secure-url: ${{ secrets.SECURE_API_URL }}
stop-on-failed-policy-eval: false
stop-on-processing-error: true

- name: Upload SARIF Results
if: success() || failure()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: ${{ github.workspace }}/sarif.json
# Only needed if with:dockerhub-enable is true below
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}

Expand Down
106 changes: 28 additions & 78 deletions .github/workflows/call-docker-build-worker.yaml
Original file line number Diff line number Diff line change
@@ -1,82 +1,32 @@
name: Build Worker
# template source: https://github.com/dockersamples/.github/blob/main/templates/call-docker-build.yaml
name: Build and Scan Worker Image

on:
# we want pull requests so we can build(test) but not push to image registry
push:
branches:
- 'main'
# only build when important files change
paths:
- 'worker/**'
- '.github/workflows/call-docker-build-worker.yaml'
pull_request:
branches:
- 'main'
# only build when important files change
paths:
- 'worker/**'
- '.github/workflows/call-docker-build-worker.yaml'
workflow_dispatch:

jobs:
call-docker-build:

name: Worker Call Docker Build

uses: dockersamples/.github/.github/workflows/reusable-docker-build.yaml@main

permissions:
contents: read
packages: write # needed to push docker image to ghcr.io
pull-requests: write # needed to create and update comments in PRs

secrets:

# Only needed if with:dockerhub-enable is true below
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }}

# Only needed if with:dockerhub-enable is true below
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}

with:

### REQUIRED
### ENABLE ONE OR BOTH REGISTRIES
### tell docker where to push.
### NOTE if Docker Hub is set to true, you must set secrets above and also add account/repo/tags below
dockerhub-enable: true
ghcr-enable: true

### REQUIRED
### A list of the account/repo names for docker build. List should match what's enabled above
### defaults to:
image-names: |
ghcr.io/dockersamples/example-voting-app-worker
dockersamples/examplevotingapp_worker

### REQUIRED set rules for tagging images, based on special action syntax:
### https://github.com/docker/metadata-action#tags-input
### defaults to:
tag-rules: |
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
type=ref,event=pr

### path to where docker should copy files into image
### defaults to root of repository (.)
context: worker

### Dockerfile alternate name. Default is Dockerfile (relative to context path)
# file: Containerfile

### build stage to target, defaults to empty, which builds to last stage in Dockerfile
# target:

### platforms to build for, defaults to linux/amd64
### other options: linux/amd64,linux/arm64,linux/arm/v7
# FIXME worker arm/v7 support doesn't build in .net core 3.1 with QEMU
# a fix would likely run the .net build on amd64 but with a target of arm/v7
platforms: linux/amd64,linux/arm64,linux/arm/v7

### Create a PR comment with image tags and labels
### defaults to false
# comment-enable: false
build-and-scan:
name: Build and Scan Worker Image
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Build Image Locally
run: docker build -t example-voting-app-worker:latest ./worker

- name: Scan Image with Sysdig
id: scan
uses: sysdiglabs/scan-action@v6
with:
image-tag: example-voting-app-worker:latest
sysdig-secure-token: ${{ secrets.SECURE_API_TOKEN }}
sysdig-secure-url: ${{ secrets.SECURE_API_URL }}
stop-on-failed-policy-eval: false
stop-on-processing-error: true

- name: Upload SARIF Results
if: success() || failure()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: ${{ github.workspace }}/sarif.json