Skip to content

Commit

Permalink
Test using verdaccio npm registry mirror
Browse files Browse the repository at this point in the history
Signed-off-by: Scott J Dickerson <[email protected]>
  • Loading branch information
sjd78 committed Mar 7, 2024
1 parent 38ab209 commit 0d362db
Showing 1 changed file with 115 additions and 11 deletions.
126 changes: 115 additions & 11 deletions .github/workflows/image-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,119 @@ concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true

env:
tag: ${{ github.ref == 'refs/heads/main' && 'latest' || github.ref_name }}

# what is normally sent in as input
registry: "quay.io/sdickers"
image_name: "tackle2-ui"
containerfile: "./Dockerfile"
extra-args: "--ulimit nofile=4096:4096"
# pre_build_cmd: |
# echo "registry= \"http://localhost:4873\"" >> .npmrc
pre_build_cmd: |
echo "registry=https://npm.pkg.github.com" >> .npmrc
jobs:
image-build:
uses: konveyor/release-tools/.github/workflows/build-push-images.yaml@main
with:
registry: "quay.io/sdickers"
image_name: "tackle2-ui"
containerfile: "./Dockerfile"
architectures: '[ "amd64", "arm64", "ppc64le", "s390x" ]'
extra-args: "--ulimit nofile=4096:4096"
secrets:
registry_username: ${{ secrets.QUAY_PUBLISH_ROBOT }}
registry_password: ${{ secrets.QUAY_PUBLISH_TOKEN }}
build:
runs-on: ubuntu-latest

# setup a npm mirror server so multiple npm installs can share fetches
# services:
# npm-mirror:
# image: verdaccio/verdaccio:5
# ports:
# - 4873:4873

strategy:
matrix:
architecture:
- "amd64"
- "arm64"
- "ppc64le"
- "s390x"

steps:
- name: Maximize disk space
shell: bash
run: |
echo "Space before clearing:"
df . -h
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf "/usr/local/share/boost"
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
echo "Space after clearing:"
df . -h
- name: Checkout
uses: actions/checkout@main

- name: Configure QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all

- name: Image meta
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.registry }}/${{ env.image_name }}
tags: |
type=schedule
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=ref,event=branch
type=ref,event=pr
type=sha
- name: Run pre build command
shell: bash
run: "${{ env.pre_build_cmd }}"
if: "${{ env.pre_build_cmd != '' }}"

- name: Build Image
id: build
uses: redhat-actions/buildah-build@main
with:
image: ${{ env.image_name }}
tags: ${{ env.tag }}-${{ matrix.architecture }}
extra-args: "--no-cache --rm ${{ env.extra-args }}"
archs: ${{ matrix.architecture }}
labels: ${{ steps.meta.outputs.labels }}
containerfiles: ${{ env.containerfile }}

- name: Push To Quay
uses: redhat-actions/push-to-registry@main
id: push
with:
image: ${{ steps.build.outputs.image }}
tags: ${{ env.tag }}-${{ matrix.architecture }}
username: ${{ secrets.QUAY_PUBLISH_ROBOT }}
password: ${{ secrets.QUAY_PUBLISH_TOKEN }}
registry: ${{ env.registry }}

manifest:
needs: build
runs-on: ubuntu-latest
steps:
- name: Create manifest
shell: bash
run: |
podman manifest create "${{ env.registry }}/${{ env.image_name }}:${{ env.tag }}"
for arch in $(echo '${{ env.architectures }}' | jq -r '.[]'); do
podman manifest add \
"${{ env.registry }}/${{ env.image_name }}:${{ env.tag }}" \
"${{ env.registry }}/${{ env.image_name }}:${{ env.tag }}-${arch}"
done
- name: Push To Quay
uses: redhat-actions/push-to-registry@main
id: push
with:
image: ${{ env.image_name }}
tags: ${{ env.tag }}
username: ${{ secrets.QUAY_PUBLISH_ROBOT }}
password: ${{ secrets.QUAY_PUBLISH_TOKEN }}
registry: ${{ env.registry }}

0 comments on commit 0d362db

Please sign in to comment.