diff --git a/.gitea/workflows/release-tag.yaml b/.gitea/workflows/release-tag.yaml new file mode 100644 index 0000000..201b541 --- /dev/null +++ b/.gitea/workflows/release-tag.yaml @@ -0,0 +1,77 @@ +name: Release Tag + +on: + push: + tags: + - "*" + +env: + DOCKER_IMAGE_NAME: murielmay67761/docker-example + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ env.DOCKERHUB_USERNAME }} + password: ${{ env.DOCKERHUB_TOKEN }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Cache Docker layers + uses: actions/cache@v4 + with: + path: | + /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Extract metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: | + docker.io/${{ env.DOCKER_IMAGE_NAME }} + tags: | + type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }} + type=semver,pattern={{major}} + type=raw,value=dev,enable=${{ github.ref == 'refs/heads/dev' }} + + # type=pep440,pattern={{raw}},enable=${{ startsWith(github.ref, 'refs/tags/') }} + + # type=schedule,pattern={{date 'YYYYMMDD-HHmmss' tz='UTC'}} + # type=ref,event=branch + # type=ref,event=pr + # type=semver,pattern={{version}} + # type=semver,pattern={{major}}.{{minor}}.{{patch}} + # type=sha + + - name: Print metadata + run: | + echo "tags: ${{ steps.meta.outputs.tags }}" + echo "labels: ${{ steps.meta.outputs.labels }}" + + - name: Build and push + uses: docker/build-push-action@v6 + with: + context: . + platforms: linux/amd64,linux/arm64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + file: ./Dockerfile + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache \ No newline at end of file diff --git a/.github/workflows/build-docker-image.yaml b/.github/workflows/release-nightly.yaml similarity index 68% rename from .github/workflows/build-docker-image.yaml rename to .github/workflows/release-nightly.yaml index 85df94f..875d95e 100644 --- a/.github/workflows/build-docker-image.yaml +++ b/.github/workflows/release-nightly.yaml @@ -1,14 +1,13 @@ -name: Build Docker Image +name: Release Nightly on: - workflow_dispatch: push: + branches: [main] + tags: + - "*" env: - DOCKER_IMAGE_NAME: yanhao98/docker-example GHCR_IMAGE_NAME: ${{ github.repository }} - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} GHCR_TOKEN: ${{ secrets.GITHUB_TOKEN }} GHCR_USERNAME: ${{ github.repository_owner }} @@ -19,13 +18,6 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - # - name: Login to DockerHub - # uses: docker/login-action@v3 - # with: - # registry: docker.io - # username: ${{ env.DOCKER_USERNAME }} - # password: ${{ env.DOCKER_PASSWORD }} - - name: Login to GHCR uses: docker/login-action@v3 with: @@ -39,21 +31,11 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - # - name: Cache Docker layers - # uses: actions/cache@v4 - # with: - # path: | - # /tmp/.buildx-cache - # key: ${{ runner.os }}-buildx-${{ github.sha }} - # restore-keys: | - # ${{ runner.os }}-buildx- - - name: Extract metadata id: meta uses: docker/metadata-action@v5 with: images: | - # docker.io/${{ env.DOCKER_IMAGE_NAME }} ghcr.io/${{ env.GHCR_IMAGE_NAME }} tags: | type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }} @@ -84,6 +66,4 @@ jobs: labels: ${{ steps.meta.outputs.labels }} file: ./Dockerfile cache-from: type=gha - cache-to: type=gha,mode=max - # cache-from: type=local,src=/tmp/.buildx-cache - # cache-to: type=local,dest=/tmp/.buildx-cache + cache-to: type=gha,mode=max \ No newline at end of file