Test JSON read/write #52
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: ~CI, single-arch | ||
run-name: CI-${{ inputs.ARCHITECTURE }} | ||
on: | ||
workflow_call: | ||
inputs: | ||
ARCHITECTURE: | ||
type: string | ||
required: true | ||
outputs: | ||
ALL_TAGS: | ||
description: Single JSON object to store all tags | ||
value: ${{ jobs.save-tags.output.ALL_TAGS }} | ||
permissions: | ||
contents: read # to fetch code | ||
actions: write # to cancel previous workflows | ||
packages: write # to upload container | ||
jobs: | ||
metadata: | ||
runs-on: ubuntu-22.04 | ||
outputs: | ||
BUILD_DATE: ${{ steps.date.outputs.BUILD_DATE }} | ||
steps: | ||
- name: Check out the repository under ${GITHUB_WORKSPACE} | ||
uses: actions/checkout@v3 | ||
- name: Set build date | ||
id: date | ||
shell: bash -x -e {0} | ||
run: | | ||
BUILD_DATE=$(TZ='US/Los_Angeles' date '+%Y-%m-%d') | ||
echo "BUILD_DATE=${BUILD_DATE}" >> $GITHUB_OUTPUT | ||
build-base: | ||
needs: metadata | ||
uses: ./.github/workflows/_build_base.yaml | ||
with: | ||
ARCHITECTURE: ${{ inputs.ARCHITECTURE }} | ||
BUILD_DATE: ${{ needs.metadata.outputs.BUILD_DATE }} | ||
secrets: inherit | ||
build-jax: | ||
needs: [metadata, build-base] | ||
uses: ./.github/workflows/_build_jax.yaml | ||
with: | ||
ARCHITECTURE: ${{ inputs.ARCHITECTURE }} | ||
BUILD_DATE: ${{ needs.metadata.outputs.BUILD_DATE }} | ||
BASE_IMAGE: ${{ needs.build-base.outputs.DOCKER_TAG }} | ||
secrets: inherit | ||
build-t5x: | ||
needs: [metadata, build-jax] | ||
if: inputs.ARCHITECTURE == 'amd64' # T5X arm64 build is wip in PR 252 | ||
uses: ./.github/workflows/_build.yaml | ||
with: | ||
ARCHITECTURE: amd64 | ||
ARTIFACT_NAME: "artifact-t5x-build" | ||
BADGE_FILENAME: "badge-t5x-build" | ||
BUILD_DATE: ${{ needs.metadata.outputs.BUILD_DATE }} | ||
BASE_IMAGE: ${{ needs.build-jax.outputs.DOCKER_TAG_MEALKIT }} | ||
CONTAINER_NAME: "upstream-t5x" | ||
DOCKERFILE: ".github/container/Dockerfile.t5x" | ||
secrets: inherit | ||
build-pallas: | ||
needs: [metadata, build-jax] | ||
if: inputs.ARCHITECTURE == 'amd64' # Triton does not seem to support arm64 | ||
uses: ./.github/workflows/_build.yaml | ||
with: | ||
ARCHITECTURE: ${{ inputs.ARCHITECTURE }} | ||
ARTIFACT_NAME: "artifact-pallas-build" | ||
BADGE_FILENAME: "badge-pallas-build" | ||
BUILD_DATE: ${{ needs.metadata.outputs.BUILD_DATE }} | ||
BASE_IMAGE: ${{ needs.build-jax.outputs.DOCKER_TAG_MEALKIT }} | ||
CONTAINER_NAME: "pallas" | ||
DOCKERFILE: .github/container/Dockerfile.pallas | ||
secrets: inherit | ||
build-pax: | ||
needs: [metadata, build-jax] | ||
uses: ./.github/workflows/_build.yaml | ||
with: | ||
ARCHITECTURE: ${{ inputs.ARCHITECTURE }} | ||
ARTIFACT_NAME: "artifact-pax-build" | ||
BADGE_FILENAME: "badge-pax-build" | ||
BUILD_DATE: ${{ needs.metadata.outputs.BUILD_DATE }} | ||
BASE_IMAGE: ${{ needs.build-jax.outputs.DOCKER_TAG_MEALKIT }} | ||
CONTAINER_NAME: "upstream-pax" | ||
DOCKERFILE: .github/container/Dockerfile.pax.${{ inputs.ARCHITECTURE }} | ||
secrets: inherit | ||
build-rosetta-t5x: | ||
uses: ./.github/workflows/_build_rosetta.yaml | ||
needs: [metadata, build-t5x] | ||
with: | ||
ARCHITECTURE: ${{ inputs.ARCHITECTURE }} | ||
BUILD_DATE: ${{ needs.metadata.outputs.BUILD_DATE }} | ||
BASE_IMAGE: ${{ needs.build-t5x.outputs.DOCKER_TAG_MEALKIT }} | ||
BASE_LIBRARY: t5x | ||
secrets: inherit | ||
build-rosetta-pax: | ||
uses: ./.github/workflows/_build_rosetta.yaml | ||
needs: [metadata, build-pax] | ||
with: | ||
ARCHITECTURE: ${{ inputs.ARCHITECTURE }} | ||
BUILD_DATE: ${{ needs.metadata.outputs.BUILD_DATE }} | ||
BASE_IMAGE: ${{ needs.build-pax.outputs.DOCKER_TAG_MEALKIT }} | ||
BASE_LIBRARY: pax | ||
secrets: inherit | ||
save-tags: | ||
needs: [build-base, build-jax, build-t5x, build-pallas, build-pax, build-rosetta-t5x, build-rosetta-pax] | ||
run: | | ||
ALL_TAGS_JSON="ALL_TAGS={" \ | ||
\"TAG_JAX_MEALKIT\": \"${{ needs.build-jax.outputs.DOCKER_TAG_MEALKIT }}\"," \ | ||
\"TAG_JAX_FINAL\": \"${{ needs.build-jax.outputs.DOCKER_TAG_FINAL }}\"," \ | ||
\"TAG_UPSTREAM_T5X_MEALKIT\": \"${{ needs.build-t5x.outputs.DOCKER_TAG_MEALKIT }}\"," \ | ||
\"TAG_UPSTREAM_T5X_FINAL\": \"${{ needs.build-t5x.outputs.DOCKER_TAG_FINAL }}\"," \ | ||
\"TAG_PALLAS_MEALKIT\": \"${{ needs.build-pallas.outputs.DOCKER_TAG_MEALKIT }}\"," \ | ||
\"TAG_PALLAS_FINAL\": \"${{ needs.build-pallas.outputs.DOCKER_TAG_FINAL }}\"," \ | ||
\"TAG_UPSTREAM_PAX_MEALKIT\": \"${{ needs.build-pax.outputs.DOCKER_TAG_MEALKIT }}\"," \ | ||
\"TAG_UPSTREAM_PAX_FINAL\": \"${{ needs.build-pax.outputs.DOCKER_TAG_FINAL }}\"," \ | ||
\"TAG_T5X_MEALKIT\": \"${{ needs.build-rosetta-t5x.outputs.DOCKER_TAG_MEALKIT }}\"," \ | ||
\"TAG_T5X_FINAL\": \"${{ needs.build-rosetta-t5x.outputs.DOCKER_TAG_FINAL }}\"," \ | ||
\"TAG_PAX_MEALKIT\": \"${{ needs.build-rosetta-pax.outputs.DOCKER_TAG_MEALKIT }}\"," \ | ||
\"TAG_PAX_FINAL\": \"${{ needs.build-rosetta-pax.outputs.DOCKER_TAG_FINAL }}\"" \ | ||
"}" | ||
echo $ALL_TAGS_JSON >> $GITHUB_OUTPUT | ||
test-distribution: | ||
needs: metadata | ||
uses: ./.github/workflows/_test_distribution.yaml | ||
secrets: inherit | ||
test-jax: | ||
needs: build-jax | ||
if: inputs.ARCHITECTURE == 'amd64' # arm64 runners n/a | ||
uses: ./.github/workflows/_test_jax.yaml | ||
with: | ||
JAX_IMAGE: ${{ needs.build-jax.outputs.DOCKER_TAG_FINAL }} | ||
secrets: inherit | ||
test-te: | ||
needs: build-pax | ||
if: inputs.ARCHITECTURE == 'amd64' # arm64 runners n/a | ||
uses: ./.github/workflows/_test_te.yaml | ||
with: | ||
TE_IMAGE: ${{ needs.build-pax.outputs.DOCKER_TAG_FINAL }} | ||
secrets: inherit | ||
test-upstream-t5x: | ||
needs: build-t5x | ||
if: inputs.ARCHITECTURE == 'amd64' # arm64 runners n/a | ||
uses: ./.github/workflows/_test_t5x.yaml | ||
with: | ||
T5X_IMAGE: ${{ needs.build-t5x.outputs.DOCKER_TAG_FINAL }} | ||
secrets: inherit | ||
test-rosetta-t5x: | ||
needs: build-rosetta-t5x | ||
if: inputs.ARCHITECTURE == 'amd64' # arm64 runners n/a | ||
uses: ./.github/workflows/_test_t5x_rosetta.yaml | ||
with: | ||
T5X_IMAGE: ${{ needs.build-rosetta-t5x.outputs.DOCKER_TAG_FINAL }} | ||
secrets: inherit | ||
test-pallas: | ||
needs: build-pallas | ||
if: inputs.ARCHITECTURE == 'amd64' # no images for arm64 | ||
uses: ./.github/workflows/_test_pallas.yaml | ||
with: | ||
PALLAS_IMAGE: ${{ needs.build-pallas.outputs.DOCKER_TAG_FINAL }} | ||
secrets: inherit | ||
test-upstream-pax: | ||
needs: build-pax | ||
if: inputs.ARCHITECTURE == 'amd64' # arm64 runners n/a | ||
uses: ./.github/workflows/_test_pax.yaml | ||
with: | ||
PAX_IMAGE: ${{ needs.build-pax.outputs.DOCKER_TAG_FINAL }} | ||
secrets: inherit | ||
test-rosetta-pax: | ||
needs: build-rosetta-pax | ||
if: inputs.ARCHITECTURE == 'amd64' # arm64 runners n/a | ||
uses: ./.github/workflows/_test_pax_rosetta.yaml | ||
with: | ||
PAX_IMAGE: ${{ needs.build-rosetta-pax.outputs.DOCKER_TAG_FINAL }} | ||
secrets: inherit |