From 2fbbaa68a42214636263548d0c59b304d74cf9d3 Mon Sep 17 00:00:00 2001 From: "nicolas.dorier" Date: Fri, 20 Nov 2020 15:22:00 +0900 Subject: [PATCH] Add docker github action --- .github/workflows/docker.yml | 62 ++++++++++++++++++++++++++++++++++++ .github/workflows/main.yml | 5 --- .travis.yml | 28 ---------------- Build/makedocker.sh | 2 +- Build/makedockermanifest.sh | 6 ++-- NDLC.sln | 1 + 6 files changed, 67 insertions(+), 37 deletions(-) create mode 100644 .github/workflows/docker.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..aab7d22 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,62 @@ +# This travis file relis on the following environment variable to configure on your travis repository settings: +# * DOCKER_USERNAME: A docker hub user where images will be pushed +# * DOCKER_API_KEY: The password of the dockerhub user +# * DOCKERHUB_REPO: The docker repository to push to + +name: Docker + +# Controls when the action will run. +on: + push: + tags: + - 'releases/*' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: +env: + DOCKERHUB_USER: nicolasdorier + DOCKERHUB_REPO: ndlc-cli + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + amd64: + name: Build/Push amd64 + runs-on: ubuntu-latest + env: + DOCKERFILE: amd64.Dockerfile + ARCH: amd64 + steps: + - uses: actions/checkout@v2 + - run: ./Build/makedocker.sh + env: + DOCKER_API_KEY: ${{ secrets.DOCKER_API_KEY }} + arm32: + name: Build/Push arm32v7 + runs-on: ubuntu-latest + env: + DOCKERFILE: arm32v7.Dockerfile + ARCH: arm32v7 + steps: + - uses: actions/checkout@v2 + - run: ./Build/makedocker.sh + env: + DOCKER_API_KEY: ${{ secrets.DOCKER_API_KEY }} + arm64v8: + name: Build/Push arm64v8 + runs-on: ubuntu-latest + env: + DOCKERFILE: arm64v8.Dockerfile + ARCH: arm64v8 + steps: + - uses: actions/checkout@v2 + - run: ./Build/makedocker.sh + env: + DOCKER_API_KEY: ${{ secrets.DOCKER_API_KEY }} + manifest: + name: "Create docker manifest" + runs-on: ubuntu-latest + needs: [amd64, arm32, arm64v8] + if: ${{ success() }} + steps: + - uses: actions/checkout@v2 + - run: ./Build/makedockermanifest.sh \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5e0256c..d0e213b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,8 +1,3 @@ -# This travis file relis on the following environment variable to configure on your travis repository settings: -# * DOCKERHUB_USER: A docker hub user where images will be pushed -# * DOCKERHUB_PASS: The password of the dockerhub user -# * DOCKERHUB_REPO: The docker repository to push to - name: CI # Controls when the action will run. diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 190c5bf..0000000 --- a/.travis.yml +++ /dev/null @@ -1,28 +0,0 @@ - - -language: minimal -services: - - docker - -stages: - - buildtest - - name: makedocker - if: tag IS present - - name: makedockermanifest - if: tag IS present - -jobs: - include: - - stage: buildtest - script: ./Build/buildtest.sh - - stage: makedocker - env: DOCKERFILE=amd64.Dockerfile ARCH=amd64 - script: ./Build/makedocker.sh - - - env: DOCKERFILE=arm32v7.Dockerfile ARCH=arm32v7 - script: ./Build/makedocker.sh - - - env: DOCKERFILE=arm64v8.Dockerfile ARCH=arm64v8 - script: ./Build/makedocker.sh - - stage: makedockermanifest - script: ./Build/makedockermanifest.sh diff --git a/Build/makedocker.sh b/Build/makedocker.sh index e619b90..a5e6a02 100755 --- a/Build/makedocker.sh +++ b/Build/makedocker.sh @@ -7,5 +7,5 @@ DOCKER_TAG="$DOCKERHUB_USER/$DOCKERHUB_REPO:$VERSION-$ARCH" echo "Docker tag: $DOCKER_TAG" sudo docker build --pull -t "$DOCKER_TAG" -f "$DOCKERFILE" . -sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS +sudo docker login "--username=$DOCKERHUB_USER" "--password=$DOCKER_API_KEY" sudo docker push "$DOCKER_TAG" \ No newline at end of file diff --git a/Build/makedockermanifest.sh b/Build/makedockermanifest.sh index 193be79..11c8dff 100755 --- a/Build/makedockermanifest.sh +++ b/Build/makedockermanifest.sh @@ -6,10 +6,10 @@ DOCKER_TAG="$DOCKERHUB_USER/$DOCKERHUB_REPO:$VERSION" echo "Docker tag: $DOCKER_TAG" -sudo mkdir $HOME/.docker -sudo sh -c 'echo "{ \"experimental\": \"enabled\" }" >> $HOME/.docker/config.json' +sudo mkdir -p $HOME/.docker +sudo sh -c 'echo "{ \"experimental\": \"enabled\" }" > $HOME/.docker/config.json' # -sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS +sudo docker login "--username=$DOCKERHUB_USER" "--password=$DOCKER_API_KEY" # sudo docker manifest create --amend $DOCKER_TAG $DOCKER_TAG-amd64 $DOCKER_TAG-arm32v7 $DOCKER_TAG-arm64v8 diff --git a/NDLC.sln b/NDLC.sln index 53228e6..2041079 100644 --- a/NDLC.sln +++ b/NDLC.sln @@ -21,6 +21,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CI", "CI", "{B373E8BF-D73D- ProjectSection(SolutionItems) = preProject Build\buildtest.Dockerfile = Build\buildtest.Dockerfile Build\buildtest.sh = Build\buildtest.sh + .github\workflows\docker.yml = .github\workflows\docker.yml .github\workflows\main.yml = .github\workflows\main.yml Build\makedocker.sh = Build\makedocker.sh Build\makedockermanifest.sh = Build\makedockermanifest.sh