diff --git a/.gitea/workflows/container.yaml b/.gitea/workflows/container.yaml new file mode 100644 index 0000000..64faddd --- /dev/null +++ b/.gitea/workflows/container.yaml @@ -0,0 +1,69 @@ +name: Container creation using Dockerfile + +on: + workflow_call: + inputs: + DOCKER_REG_DOMAIN: + description: Domain of the Gitea instance used as registry. + required: true + DOCKER_ORG: + description: Gitea organization or user to use as registry. + required: true + DOCKER_LATEST: + required: false + default: latest + secrets: + DOCKER_USERNAME: + description: User to upload built container as. + required: true + DOCKER_PASSWORD: + description: Password (or auth token) to upload built container as. + required: true + +jobs: + release-image: + runs-on: ubuntu-latest + container: + image: catthehacker/ubuntu:act-latest + env: + RUNNER_TOOL_CACHE: /toolcache + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker BuildX + uses: docker/setup-buildx-action@v2 + with: + config-inline: | + [registry.${{ inputs.DOCKER_REG_DOMAIN }}] + http = false + insecure = false + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + registry: ${{ inputs.DOCKER_REG_DOMAIN }} + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Get Meta + id: meta + run: | + echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT + echo REPO_VERSION=$(git describe --tags --always | sed 's/^v//') >> $GITHUB_OUTPUT + + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile + platforms: | + linux/amd64 + linux/arm64 + push: true + tags: | + ${{ inputs.DOCKER_REG_DOMAIN }}/${{ inputs.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.REPO_VERSION }} + ${{ inputs.DOCKER_REG_DOMAIN }}/${{ inputs.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ inputs.DOCKER_LATEST }}