From 74447a3ae2010e668c2ac840f50aa98314524b83 Mon Sep 17 00:00:00 2001 From: Ramon Roche Date: Wed, 20 Nov 2024 11:18:58 -0800 Subject: [PATCH] ci: px4-dev container --- .github/workflows/dev_container.yml | 52 ++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/.github/workflows/dev_container.yml b/.github/workflows/dev_container.yml index b9f6cfab69aa..de89addaea42 100644 --- a/.github/workflows/dev_container.yml +++ b/.github/workflows/dev_container.yml @@ -8,38 +8,80 @@ on: - 'stable' - 'beta' - 'release/**' + tags: + - 'v*' pull_request: branches: - '*' jobs: build: - name: Build Container - runs-on: [runs-on,runner=8cpu-linux-x64,"image=ubuntu24-full-x64","run-id=${{ github.run_id }}",spot=false] + name: Build and Push Container + runs-on: [runs-on,runner=8cpu-linux-x64,image=ubuntu22-full-x64,"run-id=${{ github.run_id }}",spot=false] steps: - - uses: actions/checkout@v4 with: fetch-tags: true submodules: false + fetch-depth: 0 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: | + ghcr.io/PX4/px4-dev + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - name: Build and load container image uses: docker/build-push-action@v6 + id: docker with: context: Tools/setup - tags: px4-dev:latest + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} platforms: | linux/amd64 load: true push: false + cache-from: type=s3,blobs_prefix=cache/${{ github.repository }}/,manifests_prefix=cache/${{ github.repository }}/,region=${{ env.RUNS_ON_AWS_REGION }},bucket=${{ env.RUNS_ON_S3_BUCKET_CACHE }} + cache-to: type=s3,blobs_prefix=cache/${{ github.repository }}/,manifests_prefix=cache/${{ github.repository }}/,region=${{ env.RUNS_ON_AWS_REGION }},bucket=${{ env.RUNS_ON_S3_BUCKET_CACHE }},mode=max - name: make quick_check uses: addnab/docker-run-action@v3 with: - image: px4-dev:latest + image: ${{ fromJSON(steps.docker.outputs.metadata)['image.name'] }} options: -v ${{ github.workspace }}:/workspace run: | cd /workspace git config --global --add safe.directory /workspace make px4_sitl_default make px4_fmu-v6x_default + + - name: Push container image + uses: docker/build-push-action@v6 + with: + context: Tools/setup + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + platforms: | + linux/amd64 + provenance: mode=max + push: ${{ github.event_name == 'push' }} + cache-from: type=s3,blobs_prefix=cache/${{ github.repository }}/,manifests_prefix=cache/${{ github.repository }}/,region=${{ env.RUNS_ON_AWS_REGION }},bucket=${{ env.RUNS_ON_S3_BUCKET_CACHE }} + cache-to: type=s3,blobs_prefix=cache/${{ github.repository }}/,manifests_prefix=cache/${{ github.repository }}/,region=${{ env.RUNS_ON_AWS_REGION }},bucket=${{ env.RUNS_ON_S3_BUCKET_CACHE }},mode=max