fix(gateway): say in the schema that a configuration write needs a value #134
This file contains hidden or 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: Docker Publish | |
| on: | |
| push: | |
| branches: | |
| - main | |
| env: | |
| REGISTRY: ghcr.io | |
| jobs: | |
| build-and-push: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ros_distro: [jazzy, humble, lyrical] | |
| steps: | |
| - name: Checkout repository | |
| 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 | |
| with: | |
| registry: ${{ env.REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and push Docker image | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| push: true | |
| build-args: ROS_DISTRO=${{ matrix.ros_distro }} | |
| tags: ${{ env.REGISTRY }}/${{ github.repository_owner }}/ros2_medkit-${{ matrix.ros_distro }}:latest | |
| cache-from: type=gha,scope=${{ matrix.ros_distro }} | |
| # mode=min, not max: max exports every intermediate build | |
| # stage, which for three distros held ~3.1 GB of the repo's | |
| # 10 GB Actions cache quota - about 30% of the budget, for a | |
| # job that only runs on push to main. The quota was measured | |
| # over the limit (10.54 GB active), so GitHub was evicting | |
| # LRU, and the ccache entries the build jobs depend on were | |
| # what it evicted. | |
| # | |
| # This is not free. The Dockerfile is two-stage and mode=min | |
| # exports only the layers of the final image, so builder-stage | |
| # layers are no longer restored at all. What that actually | |
| # costs is smaller than it sounds: the COPY src/ layers sit | |
| # above the rosdep+colcon RUN, so any push touching src/ | |
| # already invalidated the build layer under mode=max too. The | |
| # layer genuinely lost across such a push is the build-deps | |
| # apt-get. Accepted: this job is not on the pull request path, | |
| # and the quota it was holding is what every pull request | |
| # needs. | |
| cache-to: type=gha,mode=min,scope=${{ matrix.ros_distro }} | |
| platforms: linux/amd64 |