name: Build and push OCI image on: push: tags: - "releases/*" env: REGISTRY: repo.katenary.io IMAGE_NAME: ${{ gitea.repository }} STORAGE_DRIVER: vfs VERSION: ${{ gitea.ref_name }} jobs: build: runs-on: ubuntu-latest permissions: contents: read packages: write steps: - name: Extract version and image name run: | # remove "releases/" VERSION="${VERSION#releases/}" # set image name to lower case IMAGE_NAME="${IMAGE_NAME,,}" echo "Exporting variable VERSION=$VERSION" echo "Exporting variable IMAGE_NAME=$IMAGE_NAME" echo "VERSION=$VERSION" >> $GITEA_OUTPUT echo "IMAGE_NAME=$IMAGE_NAME" >> $GITEA_OUTPUT echo "VERSION=$VERSION" >> $GITEA_ENV echo "IMAGE_NAME=$IMAGE_NAME" >> $GITEA_ENV - name: Install Buildah run: |- env if ! command -v buildah 2>/dev/null; then echo "Install Buildah" sudo apt-get update sudo apt-get install -y buildah else echo "Buildah already installed" fi - name: Login to repository run: | buildah login $REGISTRY -u ${{ gitea.actor }} -p ${{ secrets.ACCESS_TOKEN }} - name: Checkout repository uses: actions/checkout@v4 - name: Build and tag run: |- echo "Building image ${REGISTRY}/${IMAGE_NAME}:${VERSION} / latest" buildah build --isolation=chroot --build-arg VERSION=${VERSION} -t katenary -f ./oci/katenary/Containerfile . buildah tag katenary ${REGISTRY}/${IMAGE_NAME}:${VERSION} buildah tag katenary ${REGISTRY}/${IMAGE_NAME}:latest - name: Push image run: |- buildah push ${REGISTRY}/${IMAGE_NAME}:${VERSION} buildah push ${REGISTRY}/${IMAGE_NAME}:latest