From d06bdc7f98bc1f7d2f0f99f96e6294f539f67fd6 Mon Sep 17 00:00:00 2001 From: Oleg Plakida Date: Wed, 10 Jan 2024 00:06:24 +0000 Subject: [PATCH 1/5] Add github ci --- .github/workflows/docker-build.yml | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/docker-build.yml diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml new file mode 100644 index 00000000..97aff697 --- /dev/null +++ b/.github/workflows/docker-build.yml @@ -0,0 +1,34 @@ +name: build image +on: + pull_request: + push: + branches: + - master +env: + IMAGE_NAME: paritytech/polkador-hub-app + +jobs: + build_and_push: + name: Build Docker image and push it to Docker Hub + runs-on: ubuntu-latest + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_PASS }} + + - name: Build and push Docker image from master + if: ${{ github.event_name == 'push' }} + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile + push: ${{ github.ref == 'refs/heads/master' }} + build-args: + tags: | + ${{ env.IMAGE_NAME }}:master + ${{ env.IMAGE_NAME }}:latest From e214b1123f18688ea1ea28fbf7855e8745dd2752 Mon Sep 17 00:00:00 2001 From: Oleg Plakida Date: Wed, 10 Jan 2024 14:29:44 +0000 Subject: [PATCH 2/5] Login only on master push --- .github/workflows/docker-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 97aff697..ca37d2b8 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -16,13 +16,13 @@ jobs: uses: actions/checkout@v4 - name: Log in to Docker Hub + if: ${{ github.ref == 'refs/heads/master' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USER }} password: ${{ secrets.DOCKERHUB_PASS }} - name: Build and push Docker image from master - if: ${{ github.event_name == 'push' }} uses: docker/build-push-action@v5 with: context: . From cb2eaf76514a2f75b1db11bd819652b688615c70 Mon Sep 17 00:00:00 2001 From: alvicsam Date: Tue, 16 Jan 2024 11:18:06 +0100 Subject: [PATCH 3/5] fix name, add env --- .github/workflows/docker-build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index ca37d2b8..7d4d1a66 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -5,12 +5,13 @@ on: branches: - master env: - IMAGE_NAME: paritytech/polkador-hub-app + IMAGE_NAME: paritytech/polkadot-hub-app jobs: build_and_push: name: Build Docker image and push it to Docker Hub runs-on: ubuntu-latest + environment: master_and_tags steps: - name: Check out the repo uses: actions/checkout@v4 From 878f20f4ce81e871d4cac8d2908f9b59f6fe20b0 Mon Sep 17 00:00:00 2001 From: alvicsam Date: Tue, 16 Jan 2024 11:32:23 +0100 Subject: [PATCH 4/5] add args, fix build --- .github/workflows/docker-build.yml | 33 +++++++++++++++++++++++++++--- Dockerfile | 12 +++++------ 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 7d4d1a66..a029ca95 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -8,16 +8,41 @@ env: IMAGE_NAME: paritytech/polkadot-hub-app jobs: + build_only: + name: Build Docker image + runs-on: ubuntu-latest + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - name: Build Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile + push: false + build-args: | + VCS_REF="${{ github.sha }}" + BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')" + tags: | + ${{ env.IMAGE_NAME }}:${{ github.sha }} + ${{ env.IMAGE_NAME }}:latest + build_and_push: name: Build Docker image and push it to Docker Hub + if: ${{ github.ref == 'refs/heads/master' || github.ref_type == 'tag' }} runs-on: ubuntu-latest environment: master_and_tags steps: - name: Check out the repo uses: actions/checkout@v4 + - name: Prepare Docker environment + run: | + echo IMAGE_TAG=$(if [ "$GITHUB_REF" == "refs/heads/master" ]; then echo "master-${GITHUB_SHA::7}"; else echo "$GITHUB_REF_NAME"; fi) >> $GITHUB_ENV + echo "Docker image will be published with the tag: ${{ env.IMAGE_TAG }}!" + - name: Log in to Docker Hub - if: ${{ github.ref == 'refs/heads/master' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USER }} @@ -29,7 +54,9 @@ jobs: context: . file: ./Dockerfile push: ${{ github.ref == 'refs/heads/master' }} - build-args: + build-args: | + VCS_REF="${{ github.sha }}" + BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')" tags: | - ${{ env.IMAGE_NAME }}:master + ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} ${{ env.IMAGE_NAME }}:latest diff --git a/Dockerfile b/Dockerfile index 40d478fd..b81a83a7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,14 @@ FROM node:latest -ARG VCS_REF=master -ARG BUILD_DATE="" -ARG REGISTRY_PATH="harbor.parity-mgmt.parity.io/parity-internal" -ARG PROJECT_NAME="" +# metadata +ARG VCS_REF +ARG BUILD_DATE +ARG PROJECT_NAME="polkadot-hub-app" LABEL io.parity.image.authors="cicd-team@parity.io" \ io.parity.image.vendor="Parity Technologies" \ - io.parity.image.title="${REGISTRY_PATH}/${PROJECT_NAME}" \ - io.parity.image.description="${PROJECT_NAME}" \ + io.parity.image.title="${PROJECT_NAME}" \ + io.parity.image.description="Polkadot Hub App is a self-hosted web app for managing offices, meeting rooms, events, and people profiles." \ io.parity.image.source="https://github.com/paritytech/${PROJECT_NAME}/blob/${VCS_REF}/Dockerfile" \ io.parity.image.documentation="https://github.com/paritytech/${PROJECT_NAME}/blob/${VCS_REF}/README.md" \ io.parity.image.revision="${VCS_REF}" \ From 56eaff86f5de547f5b8d06a5ba5bb09e9dca2c61 Mon Sep 17 00:00:00 2001 From: alvicsam Date: Tue, 16 Jan 2024 11:36:00 +0100 Subject: [PATCH 5/5] add tags to on --- .github/workflows/docker-build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index a029ca95..e0159d4d 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -4,6 +4,8 @@ on: push: branches: - master + tags: + - v* env: IMAGE_NAME: paritytech/polkadot-hub-app