name: ci on: push: workflow_dispatch: jobs: build: runs-on: ubuntu-22.04 steps: - name: Checkout code uses: actions/checkout@v4 with: submodules: recursive fetch-depth: 0 - name: Load versions from .env.versions id: versions run: | # Source the versions file set -a source .env.versions set +a echo "node_version=${NODE_VERSION}" >> "$GITHUB_OUTPUT" echo "go_version=${GO_VERSION}" >> "$GITHUB_OUTPUT" echo "hugo_version=${HUGO_VERSION}" >> "$GITHUB_OUTPUT" echo "Node: ${NODE_VERSION}" echo "Go: ${GO_VERSION}" echo "Hugo: ${HUGO_VERSION}" - name: Repository meta id: repository run: | registry=${{ github.server_url }} registry=${registry##http*://} echo "registry=${registry}" >> "$GITHUB_OUTPUT" echo "registry=${registry}" repository="$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')" echo "repository=${repository}" >> "$GITHUB_OUTPUT" echo "repository=${repository}" - name: Docker meta uses: docker/metadata-action@v5 id: docker with: images: ${{ steps.repository.outputs.registry }}/${{ steps.repository.outputs.repository }} - name: Login to registry uses: docker/login-action@v3 with: registry: ${{ steps.repository.outputs.registry }} username: "${{ secrets.PACKAGES_USER }}" password: "${{ secrets.PACKAGES_TOKEN }}" - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: buildkitd-flags: '--allow-insecure-entitlement network.host' driver-opts: network=host - name: Build and push uses: docker/build-push-action@v6 with: context: . push: true allow: network.host network: host platforms: linux/amd64,linux/arm64 tags: ${{ steps.docker.outputs.tags }} labels: ${{ steps.docker.outputs.labels }} build-args: | NODE_VERSION=${{ steps.versions.outputs.node_version }} GO_VERSION=${{ steps.versions.outputs.go_version }} HUGO_VERSION=${{ steps.versions.outputs.hugo_version }}