Update UBI, rust and some crate versions #40
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Build" | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- "main" | |
paths-ignore: | |
- "**.md" | |
- "proto/**" | |
pull_request: | |
branches: | |
- "main" | |
paths-ignore: | |
- "**.md" | |
- "proto/**" | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
env: | |
CACHE_IMAGE: "ghcr.io/ibm/text-gen-router:build-cache" | |
CACHE_REGISTRY: "ghcr.io" | |
QUAY_REPOSITORY: "quay.io/wxpe/text-gen-router" | |
permissions: | |
packages: write | |
contents: read | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
- name: "Set up Docker Buildx" | |
uses: docker/setup-buildx-action@v3 | |
- name: "Log in to Github Container registry" | |
uses: docker/login-action@v3 | |
if: github.event_name != 'pull_request' | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: "Log in to quay" | |
uses: docker/login-action@v3 | |
if: github.event_name != 'pull_request' | |
with: | |
registry: quay.io | |
username: wxpe+github_pusher_bot | |
password: ${{ secrets.WXPE_QUAY_TOKEN }} | |
- name: "Set build cache target" | |
run: | | |
# For push to `main` (PR merged), push a new cache image with all layers (cache-mode=max). | |
# For PR builds, use GitHub action cache which isolates cached layers by PR/branch. | |
# to optimize builds for subsequent pushes to the same PR/branch. | |
# Do not set a cache-to image for PR builds to not overwrite the `main` cache image and | |
# to not ping-pong cache images for two or more different PRs. | |
# Do not push cache images for each PR or multiple branches to not exceed GitHub package | |
# usage and traffic limitations. | |
# UPDATE 2024/02/26: GHA cache appears to have issues, cannot use `cache-to: gha,mode=min` | |
# if `cache-from: reg...,mode=max` but `cache-to: gha,mode=max` takes longer than uncached | |
# build and exhausts GHA cache size limits, so use cache `type=inline` (no external cache). | |
if [ "${{ github.event_name }}" == "pull_request" ] | |
then | |
#CACHE_TO="type=gha,mode=min" | |
CACHE_TO="type=inline" | |
else | |
CACHE_TO="type=registry,ref=${{ env.CACHE_IMAGE }},mode=max" | |
fi | |
echo "CACHE_TO=$CACHE_TO" >> $GITHUB_ENV | |
- name: "Generate tags" | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: | | |
${{ env.QUAY_REPOSITORY }} | |
tags: | | |
type=ref,event=branch | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
type=sha,enable=true,priority=100,prefix=,suffix=,format=short | |
type=sha,enable=true,priority=100,prefix=${{ github.ref_name }}.,suffix=,format=short | |
- name: "Build and push" | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
target: router-release | |
tags: ${{ steps.meta.outputs.tags }} | |
cache-from: type=registry,ref=${{ env.CACHE_IMAGE }} | |
cache-to: ${{ env.CACHE_TO }} | |
push: ${{ github.event_name != 'pull_request' }} | |
platforms: linux/amd64 |