# 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: 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 jobs: # Push image to GitHub Packages. push: runs-on: ubuntu-latest env: DOCKER_BUILDKIT: 1 IMAGE_TAG: ghcr.io/${{ github.repository }}/apache-nuttx-ci-linux steps: - uses: actions/checkout@v2 - name: Log into registry run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build Linux image run: | echo "Building Linux Image using cache from $IMAGE_TAG" docker build \ --build-arg BUILDKIT_INLINE_CACHE=1 \ --cache-from $IMAGE_TAG \ --tag $IMAGE_TAG \ -f ./tools/ci/docker/linux/Dockerfile ./tools/ci/docker/ - name: Push Linux image if: (github.event_name == 'push') && (github.ref == 'refs/heads/master') run: | docker push $IMAGE_TAG