diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml deleted file mode 100644 index 6a2b91b..0000000 --- a/.github/workflows/blank.yml +++ /dev/null @@ -1,36 +0,0 @@ -# This is a basic workflow to help you get started with Actions - -name: CI - -# Controls when the action will run. -on: - # Triggers the workflow on push or pull request events but only for the master branch - push: - branches: [ master ] - pull_request: - branches: [ master ] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - # This workflow contains a single job called "build" - build: - # The type of runner that the job will run on - runs-on: ubuntu-latest - - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 - - # Runs a single command using the runners shell - - name: Run a one-line script - run: echo Hello, world! - - # Runs a set of commands using the runners shell - - name: Run a multi-line script - run: | - echo Add other actions to build, - echo test, and deploy your project. diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..4fd441f --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,41 @@ +name: CI to Docker Hub + +on: + push: + branches: [ master, github-actions ] + pull_request: + branches: [ master ] + + workflow_dispatch: + +jobs: + multi: + runs-on: ubuntu-latest + strategy: + matrix: + repository: [restic-auto] + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: ${{ matrix.repository }}/ + file: ${{ matrix.repository }}/Dockerfile + platforms: linux/amd64,linux/arm/v6,linux/arm64 + push: true + tags: | + ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.repository }}:latest diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index cf20d04..0000000 --- a/.travis.yml +++ /dev/null @@ -1,26 +0,0 @@ -language: bash -services: docker -sudo: required - -notifications: - email: false - slack: - rooms: - - secure: 3iUauEp7w5F6YDXXuJnKSLR9TZjndwhwWcDa+1KkAp9qv0NBAn1DWntl5iPUGzuZ0KdpQlI3QbvSMn0jYbsXgMDLgZRvCGaQ+TXrJblTPvlZXVxeGM3mCr6yEpt0foe8qqhiWAMer8ioM7QKncBiQfGbB2VctvuH8YqG2JuRSVe/dZxd+Jjn7J8SQyW97GQ0wpsYHQV7V2hg8KOF5/KNNk8Y93RGvnvEVX7XNVI+h+cdsxjBys9qxvC3gRpcngXw/v3mPM2sXN0LHjkobu9P9E7v9RHNwCz3i7FMzmOX82wcoPr06pnvnmecnU6pY3Uwmobed71KnTERSXt0S0Qpjvhod004vFBvzZovHKaucsUOzq0FdN+KaOhOZMr+LfCNty3iWZrEiYiuntFDAmr38xE0q4nb3dmljzEav8nTRO3/9DezWV98CBictzhwxknD/aPpWl7kXEl21K/jnprcJXypqNVscjJ/jylNiwebmFsv7oHlgeyzA9IbG8U7yO8kxCx86214FmPAJBkyAfevrQq9hOcigVwNuV7EoW5zqLTYb1pTyOkHSz/W9dKawjeG4c8ZTBsS1x6c+jQj735/MsQK0WMuaybOeTrVu6akKwXpiyZ4OGO7krHfCByXryZ56BNl7kb1J7aTjaLi0sifdc1X/eI6Y9nsHhc+Zyvv4AA= - on_success: change - -env: - - IMAGE=restic-auto - -install: - - docker run --rm --privileged multiarch/qemu-user-static:register --credential yes - -script: - - cd ${IMAGE} - - make build - - docker images - -after_success: - - if [ "${TRAVIS_BRANCH}" == "master" ]; then - make push ; - fi diff --git a/restic-auto/Dockerfile.amd64 b/restic-auto/Dockerfile similarity index 96% rename from restic-auto/Dockerfile.amd64 rename to restic-auto/Dockerfile index 9ea26ef..3febdb4 100644 --- a/restic-auto/Dockerfile.amd64 +++ b/restic-auto/Dockerfile @@ -6,7 +6,7 @@ RUN apk add --no-cache curl \ && bunzip2 restic.bz2 \ && chmod +x restic -FROM amd64/alpine:latest +FROM alpine:latest COPY --from=builder restic /usr/bin/ @@ -15,4 +15,5 @@ RUN apk add --no-cache bash curl jq openssh-client dcron tzdata COPY restic-auto docker-entrypoint.sh docker-command.sh /usr/local/bin/ ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] + CMD ["/usr/local/bin/docker-command.sh"] diff --git a/restic-auto/Dockerfile.arm32v6 b/restic-auto/Dockerfile.arm32v6 deleted file mode 100644 index d700a03..0000000 --- a/restic-auto/Dockerfile.arm32v6 +++ /dev/null @@ -1,21 +0,0 @@ -FROM alpine:latest AS builder - -RUN apk add --no-cache curl \ - && while [ "$QEMU_DOWNLOAD_URL" == "" ] ; do QEMU_DOWNLOAD_URL=$(curl -s https://api.github.com/repos/multiarch/qemu-user-static/releases/latest | grep "browser_download_url" | grep "\/qemu-arm-static.tar.gz" | cut -d\" -f4) ; done \ - && curl --retry 3 -L -s -o /tmp/qemu-arm-static.tar.gz $QEMU_DOWNLOAD_URL \ - && tar xzf /tmp/qemu-arm-static.tar.gz \ - && while [ "$DOWNLOAD_URL" == "" ] ; do DOWNLOAD_URL=$(curl -s https://api.github.com/repos/restic/restic/releases/latest | grep "browser_download_url" | grep "linux_arm\." | cut -d\" -f4) ; done \ - && curl --retry 3 -L -s -o restic.bz2 ${DOWNLOAD_URL} \ - && bunzip2 restic.bz2 \ - && chmod +x restic - -FROM arm32v6/alpine:latest - -COPY --from=builder qemu-arm-static restic /usr/bin/ - -RUN apk add --no-cache bash curl jq openssh-client dcron tzdata - -COPY restic-auto docker-entrypoint.sh docker-command.sh /usr/local/bin/ - -ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] -CMD ["/usr/local/bin/docker-command.sh"] diff --git a/restic-auto/Makefile b/restic-auto/Makefile deleted file mode 100644 index 1325b31..0000000 --- a/restic-auto/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -all: build push - -build: - docker build -t napnap75/restic-auto:latest-amd64 -f Dockerfile.amd64 . - docker build -t napnap75/restic-auto:latest-arm32v6 -f Dockerfile.arm32v6 . - -push: - if [ "${DOCKER_USERNAME}" != "" ]; then docker login -u="${DOCKER_USERNAME}" -p="${DOCKER_PASSWORD}" ; fi - docker push napnap75/restic-auto:latest-amd64 - docker push napnap75/restic-auto:latest-arm32v6 - env DOCKER_CLI_EXPERIMENTAL=enabled docker manifest create napnap75/restic-auto:latest napnap75/restic-auto:latest-amd64 napnap75/restic-auto:latest-arm32v6 - env DOCKER_CLI_EXPERIMENTAL=enabled docker manifest push -p napnap75/restic-auto:latest - version=$$(docker run --rm -it napnap75/restic-auto:latest restic version | egrep -o "restic [.0-9]+ compiled" | egrep -o "[.0-9]+") ; \ - docker tag napnap75/restic-auto:latest-amd64 napnap75/restic-auto:$$version-amd64 ; \ - docker push napnap75/restic-auto:$$version-amd64 ; \ - docker tag napnap75/restic-auto:latest-arm32v6 napnap75/restic-auto:$$version-arm32v6 ; \ - docker push napnap75/restic-auto:$$version-arm32v6 ; \ - env DOCKER_CLI_EXPERIMENTAL=enabled docker manifest create napnap75/restic-auto:$$version napnap75/restic-auto:$$version-amd64 napnap75/restic-auto:$$version-arm32v6 ; \ - env DOCKER_CLI_EXPERIMENTAL=enabled docker manifest push -p napnap75/restic-auto:$$version