| # 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: |
| - 'docker/linux/**' |
| |
| # Run builds for any PRs. |
| pull_request: |
| paths: |
| - 'docker/linux/**' |
| |
| env: |
| IMAGE_NAME: nuttx-ci-linux |
| |
| jobs: |
| # Push image to GitHub Packages. |
| push: |
| runs-on: ubuntu-latest |
| env: |
| DOCKER_BUILDKIT: 1 |
| IMAGE_TAG: docker.pkg.github.com/${{ github.repository }}/nuttx-ci-linux |
| steps: |
| - uses: actions/checkout@v2 |
| |
| - name: Log into registry |
| run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login docker.pkg.github.com -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 ./docker/linux/Dockerfile ./docker/ |
| |
| - name: Push Linux image |
| if: (github.event_name == 'push') && (github.ref == 'refs/heads/master') |
| run: | |
| docker push $IMAGE_TAG |