Skip to content

Commit

Permalink
feat: publish to ghcr
Browse files Browse the repository at this point in the history
Signed-off-by: Evan Baker <[email protected]>
  • Loading branch information
rbtr committed Mar 14, 2024
1 parent 91de0eb commit a74db34
Show file tree
Hide file tree
Showing 2 changed files with 179 additions and 27 deletions.
172 changes: 172 additions & 0 deletions .github/workflows/images-ghcr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
name: Build and Publish Retina Container Images [GHCR]

on:
push:
branches: [ main ]
tags: [ "v*" ]
pull_request:
branches: [ main ]

permissions:
contents: read
packages: write

jobs:
retina-images:
name: Build Agent Images
runs-on: ubuntu-latest

strategy:
matrix:
platform: ["linux"]
arch: ["amd64", "arm64"]

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

- uses: actions/setup-go@v4
with:
go-version: ">=1.21.0"
- run: go version

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Log in to registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin

- name: Build/Push Images
shell: bash
run: |
set -euo pipefail
echo "TAG=$(make version)" >> $GITHUB_ENV
make retina-image \
IMAGE_REGISTRY=ghcr.io/microsoft/retina \
PLATFORM=${{ matrix.platform }}/${{ matrix.arch }}
retina-win-images:
name: Build Agent Images
runs-on: ubuntu-latest

strategy:
matrix:
platform: ["windows"]
arch: ["amd64"]

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

- uses: actions/setup-go@v4
with:
go-version: ">=1.21.0"
- run: go version

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Log in to registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin

- name: Build/Push Images
shell: bash
run: |
set -euo pipefail
echo "TAG=$(make version)" >> $GITHUB_ENV
make retina-image-win \
IMAGE_REGISTRY=ghcr.io/microsoft/retina \
PLATFORM=${{ matrix.platform }}/${{ matrix.arch }}
operator-images:
name: Build Operator Images
runs-on: ubuntu-latest

strategy:
matrix:
platform: ["linux"]
arch: ["amd64", "arm64"]

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

- uses: actions/setup-go@v4
with:
go-version: ">=1.21.0"
- run: go version

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Log in to registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin

- name: Build/Push Images
shell: bash
run: |
set -euo pipefail
echo "TAG=$(make version)" >> $GITHUB_ENV
make retina-operator-image \
IMAGE_REGISTRY=ghcr.io/microsoft/retina \
PLATFORM=${{ matrix.platform }}/${{ matrix.arch }}
kubectl-retina-images:
name: Build kubectl-retina Images
runs-on: ubuntu-latest

strategy:
matrix:
platform: ["linux"]
arch: ["amd64", "arm64"]

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

- uses: actions/setup-go@v4
with:
go-version: ">=1.21.0"
- run: go version

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Log in to registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin

- name: Build/Push Images
shell: bash
run: |
set -euo pipefail
echo "TAG=$(make version)" >> $GITHUB_ENV
make kubectl-retina-image \
IMAGE_REGISTRY=ghcr.io/microsoft/retina \
PLATFORM=${{ matrix.platform }}/${{ matrix.arch }}
manifests:
name: Generate Manifests
runs-on: ubuntu-latest
needs: [retina-images, retina-win-images, operator-images, kubectl-retina-images]

strategy:
matrix:
component: ["retina", "operator", "kubectl-retina"]

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

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Log in to registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin

- name: Generate Manifests
shell: bash
run: |
set -euo pipefail
make manifest \
IMAGE_REGISTRY=ghcr.io/microsoft/retina \
COMPONENT=${{ matrix.component }}
34 changes: 7 additions & 27 deletions .github/workflows/images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,21 @@ on:
pull_request:
branches: [ main ]

# required for AZ login/SP
permissions:
id-token: write
contents: read

jobs:
retina-images:
name: Build Linux Images
name: Build Agent Images
runs-on: ubuntu-latest

strategy:
matrix:
platform: ["linux"]
arch: ["amd64", "arm64"]

# required for AZ login/SP
permissions:
id-token: write
contents: read

steps:
- name: Checkout code
uses: actions/checkout@v4
Expand All @@ -47,19 +47,14 @@ jobs:
make retina-image PLATFORM=${{ matrix.platform }}/${{ matrix.arch }}
retina-win-images:
name: Build Windows Images
name: Build Agent Images
runs-on: ubuntu-latest

strategy:
matrix:
platform: ["windows"]
arch: ["amd64"]

# required for AZ login/SP
permissions:
id-token: write
contents: read

steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down Expand Up @@ -94,11 +89,6 @@ jobs:
platform: ["linux"]
arch: ["amd64", "arm64"]

# required for AZ login/SP
permissions:
id-token: write
contents: read

steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down Expand Up @@ -133,11 +123,6 @@ jobs:
platform: ["linux"]
arch: ["amd64", "arm64"]

# required for AZ login/SP
permissions:
id-token: write
contents: read

steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down Expand Up @@ -172,11 +157,6 @@ jobs:
matrix:
component: ["retina", "operator", "kubectl-retina"]

# required for AZ login/SP
permissions:
id-token: write
contents: read

steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down

0 comments on commit a74db34

Please sign in to comment.