From a183b924559e1cb950701b9104f8de3643ef18f5 Mon Sep 17 00:00:00 2001 From: DevMiner Date: Sat, 24 Aug 2024 16:46:24 +0200 Subject: [PATCH] chore: add CI --- .github/workflows/docker.yml | 80 ++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..9df8360 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,80 @@ +name: Docker + +on: + release: + types: [published] + pull_request: + push: + tags: + - "**" + branches: + - master + workflow_dispatch: + +env: + REGISTRY: ghcr.io + IMAGE_NAME: "lysand-org/versia-go" + +jobs: + docker: + name: Build Image + runs-on: ubuntu-22.04 + permissions: + packages: write + contents: read + concurrency: + group: docker + cancel-in-progress: false + steps: + - uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Cache docker layers + uses: actions/cache@v4 + id: cache + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Gather Docker metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + labels: | + cache-from=type=local,src=/tmp/.buildx-cache + cache-to=type=local,dest=/tmp/.buildx-cache + + - name: Log in to the Container registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Get current commit + id: get_commit + run: echo ::set-output "name=hash::${GITHUB_SHA:0:7}" + + - name: Build and push Docker image + uses: docker/build-push-action@v6 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new + + - name: Move cache + run: | + rm -rf /tmp/.buildx-cache + mv /tmp/.buildx-cache-new /tmp/.buildx-cache