builder/.forgejo/workflows/build.yaml
Hornwitser 5d235f2e9a Avoid circular dependency in build script
Use the node image and install docker onto it in the CI pipeline
building the builder image to avoid a circular dependency loop of
requiring the builder image in order to build it.
2024-08-02 13:14:43 +02:00

56 lines
1.9 KiB
YAML

on: [push]
env:
REGISTRY: forgejo.sbox.hornwitser.no
REGISTRY_IMAGE: forgejo.sbox.hornwitser.no/furnavia/builder
jobs:
build:
runs-on: docker
container:
image: node:20-bookworm
steps:
-
name: Install docker
run: |
apt-get update
apt-get install -y --no-install-recommends ca-certificates curl git
install -m 0755 -d /etc/apt/keyrings
curl -sSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/debian \
bookworm stable" \
> /etc/apt/sources.list.d/docker.list
apt-get update
apt-get install -y --no-install-recommends docker-ce-cli docker-buildx-plugin docker-compose-plugin
-
name: Get image tags
id: info
shell: bash
run: |
tee -a ${GITHUB_OUTPUT} <<EOF
TAGS<<EOT
$(
echo ${{ env.REGISTRY_IMAGE }}:${{ github.ref_name }}
if [[ "${{ github.ref_name }}" =~ ^r[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo ${{ env.REGISTRY_IMAGE }}:latest
elif [[ "${{ github.ref_name }}" == forgejo ]]; then
echo ${{ env.REGISTRY_IMAGE }}:development
fi
)
EOT
EOF
-
name: Authenticate
uses: docker/login-action@v3
with:
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_TOKEN }}
registry: ${{ env.REGISTRY }}
-
name: Build and push
uses: docker/build-push-action@v6
with:
push: true
tags: ${{ steps.info.outputs.TAGS }}