36 lines
No EOL
1.5 KiB
YAML
36 lines
No EOL
1.5 KiB
YAML
when:
|
|
- event: push
|
|
branch: main
|
|
|
|
steps:
|
|
- name: build-x86_64
|
|
image: rust:bookworm
|
|
commands:
|
|
- cargo build --release
|
|
- cp target/release/backend target/backend-amd64
|
|
- name: build-arm64
|
|
image: rust:bookworm
|
|
commands:
|
|
- install -m 0755 -d /etc/apt/keyrings
|
|
- curl -fsSL 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 \
|
|
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
|
tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
- apt-get update && apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
- CROSS_CONTAINER_IN_CONTAINER=true cargo install -f cross
|
|
- CROSS_CONTAINER_IN_CONTAINER=true cross build --target=aarch64-unknown-linux-gnu --release
|
|
- cp target/aarch64-unknown-linux/release/backend target/backend-arm64
|
|
volumes:
|
|
- /var/run/podman/podman.sock:/var/run/docker.sock
|
|
- name: container-build-and-publish
|
|
image: docker
|
|
commands:
|
|
- docker login --username radical --password $PASSWORD git.gorb.app
|
|
- docker buildx build --platform linux/amd64,linux/arm64 --rm --push -t git.gorb.app/gorb/backend:main .
|
|
environment:
|
|
PASSWORD:
|
|
from_secret: docker_password
|
|
volumes:
|
|
- /var/run/podman/podman.sock:/var/run/docker.sock |