From fe5c5adca890c1891c36cd68c901430425356dc2 Mon Sep 17 00:00:00 2001 From: Leon Kiefer Date: Sun, 5 Jul 2020 23:20:55 +0200 Subject: [PATCH 1/4] Create docker.yml workflow updated docker-entrypoint.sh permissions in git added DOCKER_CLI_EXPERIMENTAL=enabled removed travis.yml --- .github/workflows/docker.yml | 33 +++++++++++++++++++++++++++++++++ .travis.yml | 29 ----------------------------- Dockerfile | 1 - build.sh | 2 +- docker-entrypoint.sh | 0 5 files changed, 34 insertions(+), 31 deletions(-) create mode 100644 .github/workflows/docker.yml delete mode 100644 .travis.yml mode change 100644 => 100755 docker-entrypoint.sh diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..9998ebe --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,33 @@ +name: Docker + +on: + push: + pull_request: + schedule: + - cron: '17 3 * * *' + +jobs: + buildx: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Docker Buildx + uses: crazy-max/ghaction-docker-buildx@v3 + - name: Docker Login + id: docker-login + if: success() && github.ref == 'refs/heads/master' && github.event_name != 'pull_request' + env: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + run: | + echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin + - name: Docker Build and Push + if: steps.docker-login.outcome == 'success' + run: ./build.sh "--push" + - name: Docker Build + if: steps.docker-login.outcome == 'skipped' + run: ./build.sh + - name: Docker Clear + if: always() && steps.docker-login.outcome == 'success' + run: | + rm -f ${HOME}/.docker/config.json diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2c6ed65..0000000 --- a/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -dist: xenial -sudo: required -services: - - docker -language: bash -before_script: - # Upgrade Docker and enable experimental mode - - curl -fsSL https://get.docker.com | sh - - echo '{"experimental":true}' | sudo tee /etc/docker/daemon.json - - mkdir $HOME/.docker - - touch $HOME/.docker/config.json - - echo '{"experimental":"enabled"}' | sudo tee $HOME/.docker/config.json - - sudo service docker start - - docker info - - docker version -script: - # Enable multi-architecture containers using QEMU - - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - - docker buildx create --name xbuilder --use - # Login to Docker Hub and configure push behaviour if we are on master - - > - if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then - echo "$DOCKER_PASS" | docker login -u bastilimbach --password-stdin - dopush="--push" - fi - # Build the latest stable MagicMirror release - - ./build.sh ${dopush} -after_script: - - docker logout diff --git a/Dockerfile b/Dockerfile index 1aecfce..114f569 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,7 +16,6 @@ RUN cp -R config /opt/default_config RUN npm install --unsafe-perm --silent COPY mm-docker-config.js docker-entrypoint.sh ./ -RUN chmod +x ./docker-entrypoint.sh EXPOSE 8080 ENTRYPOINT ["./docker-entrypoint.sh"] diff --git a/build.sh b/build.sh index 1ff6a00..6a7ce99 100755 --- a/build.sh +++ b/build.sh @@ -3,7 +3,7 @@ set -e # https://stackoverflow.com/a/51761312/4934537 latest_release=$(git ls-remote --tags --refs --sort="v:refname" https://github.com/MichMich/MagicMirror.git | tail -n1 | sed 's/.*\///') -if [ "$(docker manifest inspect bastilimbach/docker-magicmirror:"${latest_release}" > /dev/null; echo $?)" != 0 ]; then +if [ "$(DOCKER_CLI_EXPERIMENTAL=enabled docker manifest inspect bastilimbach/docker-magicmirror:"${latest_release}" > /dev/null; echo $?)" != 0 ]; then docker buildx build --progress plain --platform=linux/amd64,linux/arm64,linux/arm/v7 ${1} --build-arg branch="${latest_release}" -t bastilimbach/docker-magicmirror:"${latest_release}" -t bastilimbach/docker-magicmirror:latest . fi diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh old mode 100644 new mode 100755 From 6a0daa1397dbae63c231c0cd72b8b5c4c6585ab1 Mon Sep 17 00:00:00 2001 From: Leon Kiefer Date: Wed, 22 Jul 2020 14:41:01 +0200 Subject: [PATCH 2/4] Create dependabot.yml --- .github/dependabot.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..1230149 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" From 0ce8f2e46930df879e181707abb0ffb77453331d Mon Sep 17 00:00:00 2001 From: Leon Kiefer Date: Thu, 28 Jan 2021 18:16:52 +0100 Subject: [PATCH 3/4] use official docker actions --- .github/workflows/docker.yml | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 9998ebe..5b157f2 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -4,30 +4,27 @@ on: push: pull_request: schedule: - - cron: '17 3 * * *' + - cron: "17 3 * * *" jobs: buildx: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx - uses: crazy-max/ghaction-docker-buildx@v3 + uses: docker/setup-buildx-action@v1 - name: Docker Login id: docker-login if: success() && github.ref == 'refs/heads/master' && github.event_name != 'pull_request' - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: | - echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} - name: Docker Build and Push if: steps.docker-login.outcome == 'success' run: ./build.sh "--push" - name: Docker Build if: steps.docker-login.outcome == 'skipped' run: ./build.sh - - name: Docker Clear - if: always() && steps.docker-login.outcome == 'success' - run: | - rm -f ${HOME}/.docker/config.json From ee1ea79b11d7aaff4d5082433d4c1cb42f8a60aa Mon Sep 17 00:00:00 2001 From: Leon Kiefer Date: Thu, 28 Jan 2021 18:30:23 +0100 Subject: [PATCH 4/4] replaced travis with github actions in readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d40cf26..fe7c79a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![DockerHub Badge](https://dockeri.co/image/bastilimbach/docker-magicmirror)](https://hub.docker.com/r/bastilimbach/docker-magicmirror/) -# Why Docker? [![Build Status](https://travis-ci.org/bastilimbach/docker-MagicMirror.svg?branch=master)](https://travis-ci.org/bastilimbach/docker-MagicMirror) +# Why Docker? [![Build Status](https://github.com/bastilimbach/docker-MagicMirror/workflows/Docker/badge.svg?branch=master)](https://github.com/bastilimbach/docker-MagicMirror/actions?query=workflow%3ADocker) In some cases, you want to start the application without an actual app window. In this case, you can start MagicMirror² in server only mode by manually running `node serveronly` or using Docker. This will start the server, after which you can open the application in your browser of choice. @@ -14,7 +14,7 @@ In some cases, you want to start the application without an actual app window. I - `develop` - Image based on the [`develop`](https://github.com/MichMich/MagicMirror/tree/develop) branch. - `vX.Y.Z`- Specific MagicMirror release. Take a look at the [releases](https://github.com/MichMich/MagicMirror/releases) page in the MagicMirror repository to get the correct version number. -> The respective docker images are getting updated daily by a cron job from Travis CI. +> The respective docker images are getting updated daily by a GitHub Actions cron job. # Run MagicMirror² in server only mode