From 3c0c5b76fa98fb12c4d96e47ab5af6d3503acfff Mon Sep 17 00:00:00 2001 From: Dzianis Andreyenka Date: Tue, 19 Sep 2023 21:59:34 +0200 Subject: [PATCH 1/2] Update Github Actions Signed-off-by: Dzianis Andreyenka --- .github/settings.yml | 15 ++++-- .github/workflows/docker_main.yml | 57 ++++++++++++++++++++ .github/workflows/docker_release.yml | 77 ++++++++++++++++++++++++++++ 3 files changed, 144 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/docker_main.yml create mode 100644 .github/workflows/docker_release.yml diff --git a/.github/settings.yml b/.github/settings.yml index f25f18b..49fc1c3 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -1,12 +1,17 @@ +# +# SPDX-License-Identifier: Apache-2.0 +# + repository: name: firefly-tezosconnect + description: Firefly Tezos Connect + homepage: https://github.com/hyperledger/firefly-tezosconnect default_branch: main - has_downloads: false + has_downloads: true has_issues: true has_projects: true - has_wiki: false + has_wiki: true archived: false private: false - allow_squash_merge: false - allow_merge_commit: false - allow_rebase_merge: true + allow_squash_merge: true + allow_merge_commit: true diff --git a/.github/workflows/docker_main.yml b/.github/workflows/docker_main.yml new file mode 100644 index 0000000..11c1df4 --- /dev/null +++ b/.github/workflows/docker_main.yml @@ -0,0 +1,57 @@ +name: Docker Main Build + +on: + push: + branches: + - main + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + + - name: Docker login + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set build tag + id: build_tag_generator + run: | + RELEASE_TAG=$(curl https://api.github.com/repos/${{ github.repository }}/releases/latest -s | jq .tag_name -r) + BUILD_TAG=$RELEASE_TAG-$(date +"%Y%m%d")-$GITHUB_RUN_NUMBER + BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") + echo "BUILD_TAG=$BUILD_TAG" >> $GITHUB_OUTPUT + echo "name=BUILD_DATE=$BUILD_DATE" >> $GITHUB_OUTPUT + + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: ./ + file: ./Dockerfile + builder: ${{ steps.buildx.outputs.name }} + push: true + platforms: linux/amd64 + provenance: false + tags: ghcr.io/${{ github.repository }}:${{ steps.build_tag_generator.outputs.BUILD_TAG }},ghcr.io/${{ github.repository }}:head + labels: | + commit=${{ github.sha }} + build_date=${{ steps.build_tag_generator.outputs.BUILD_DATE }} + tag=${{ steps.build_tag_generator.outputs.BUILD_TAG }} + cache-from: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache + cache-to: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache,mode=max + build-args: | + BUILD_VERSION=${{ steps.build_tag_generator.outputs.BUILD_TAG }} + GIT_REF=${{ github.ref }} diff --git a/.github/workflows/docker_release.yml b/.github/workflows/docker_release.yml new file mode 100644 index 0000000..b56f0be --- /dev/null +++ b/.github/workflows/docker_release.yml @@ -0,0 +1,77 @@ +name: Docker Release Build + +on: + release: + types: [released, prereleased] + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + + - name: Docker login + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set latest tag + if: github.event.action == 'released' + run: | + echo "DOCKER_TAGS=${{ env.DOCKER_TAGS }},ghcr.io/${{ github.repository }}:latest" >> $GITHUB_ENV + + - name: Set alpha tag + if: github.event.action == 'prereleased' && contains(github.ref, 'alpha') + run: | + echo "DOCKER_TAGS=${{ env.DOCKER_TAGS }},ghcr.io/${{ github.repository }}:alpha" >> $GITHUB_ENV + + - name: Set beta tag + if: github.event.action == 'prereleased' && contains(github.ref, 'beta') + run: | + echo "DOCKER_TAGS=${{ env.DOCKER_TAGS }},ghcr.io/${{ github.repository }}:beta" >> $GITHUB_ENV + + - name: Set rc tag + if: github.event.action == 'prereleased' && contains(github.ref, 'rc') + run: | + echo "DOCKER_TAGS=${{ env.DOCKER_TAGS }},ghcr.io/${{ github.repository }}:rc" >> $GITHUB_ENV + + - name: Set build tag + id: build_tag_generator + run: | + RELEASE_TAG=$(curl https://api.github.com/repos/${{ github.repository }}/releases/latest -s | jq .tag_name -r) + BUILD_TAG=$RELEASE_TAG-$(date +"%Y%m%d")-$GITHUB_RUN_NUMBER + BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") + echo "BUILD_TAG=$BUILD_TAG" >> $GITHUB_OUTPUT + echo "BUILD_DATE=$BUILD_DATE" >> $GITHUB_OUTPUT + echo "RELEASE_TAG=$RELEASE_TAG" >> $GITHUB_OUTPUT + + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: ./ + file: ./Dockerfile + builder: ${{ steps.buildx.outputs.name }} + push: true + platforms: linux/amd64 + provenance: false + tags: ghcr.io/${{ github.repository }}:${{ github.ref_name }},ghcr.io/${{ github.repository }}:head,${{ env.DOCKER_TAGS }} + labels: | + commit=${{ github.sha }} + build_date=${{ steps.build_tag_generator.outputs.BUILD_DATE }} + tag=${{ steps.build_tag_generator.outputs.RELEASE_TAG }} + cache-from: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache + cache-to: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache,mode=max + build-args: | + BUILD_VERSION=${{ steps.build_tag_generator.outputs.RELEASE_TAG }} + GIT_REF=${{ github.ref }} From 3566f10538cb0f7a0de96d17d07a568091a1919c Mon Sep 17 00:00:00 2001 From: Dzianis Andreyenka Date: Wed, 20 Sep 2023 22:37:08 +0200 Subject: [PATCH 2/2] update github repo config Signed-off-by: Dzianis Andreyenka --- .github/settings.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/settings.yml b/.github/settings.yml index 49fc1c3..ab11fbf 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -10,7 +10,7 @@ repository: has_downloads: true has_issues: true has_projects: true - has_wiki: true + has_wiki: false archived: false private: false allow_squash_merge: true