# Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # name: Docker-Linux on: workflow_dispatch: push: # Publish `master` as Docker `latest` image. branches: - master paths: - 'tools/ci/docker/linux/**' - '.github/workflows/docker_linux.yml' # Run builds for any PRs. pull_request: paths: - 'tools/ci/docker/linux/**' - '.github/workflows/docker_linux.yml' env: IMAGE_NAME: apache-nuttx-ci-linux concurrency: group: docker-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true permissions: packages: write contents: read jobs: # Push image to GitHub Packages. push: runs-on: ubuntu-latest env: IMAGE_TAG: ghcr.io/${{ github.repository }}/apache-nuttx-ci-linux steps: - name: Checkout repository uses: actions/checkout@v4 - name: Free Disk Space (Ubuntu) uses: ./.github/actions/free-disk-space with: # this might remove tools that are actually needed, # if set to "true" but frees about 6 GB tool-cache: false # all of these default to true, but feel free to set to # "false" if necessary for your workflow android: true dotnet: true haskell: true large-packages: true docker-images: true swap-storage: true - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log into registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Pre-build Disk Stats run: | df -h - name: Push Linux image uses: docker/build-push-action@v6 with: context: tools/ci/docker/linux platforms: linux/amd64 push: ${{ github.ref == 'refs/heads/master' }} tags: ${{ env.IMAGE_TAG }} - name: Post-build Disk Stats if: always() run: | df -h