sebt3
homebrew player (P. & C.)
pyra-builder is a cross-compilation toolchain in a docker image. Actually, it is pretty much my pyra-debian-cross in a container image.
I'm providing 3 distincts images (I may make some for ARM)
Basic usage
Then use exactly as pyra-debian-cross, the toolchain live in /toolchain
Using a volume mount for dbp
The produced dbp will still be available in /tmp/out on your host.
Automating build
Included in the image, there's an automated dbp build system.
Here is a little demo :
Automated publish to a ssh target
Usage with drone.io
drone.io is a CI/CD docker based solution.
Here is a sample .drone.yml file :
The depo-ssh secret have to contain the id_rsa file.
Usage with gitlab-ci
Here is a sample .gitlab-ci.yml file :
That will make the dbp available as a gitlab artifact (so downloadable by anyone)
If you want it to upload to a ssh destination, then get to your gitlab "project settting/CI CD" page, "Expand" the "variables" section.
Then create a line with
- Type: Variable
- Key: PLUGIN_SSHDEST
- Value : something like : "user@hostname:/path/where/to/drop/dbp_files/"
- State: "protected"
And another one :
- Type: File
- Key: PLUGIN_SSHKEY
- Value : the content of your ~/.ssh/id_rsa file that you use to log in on this target
- State: "protected"
This way theses secrets values wont be displayd.
I'm providing 3 distincts images (I may make some for ARM)
- slim: using debian:buster-slim as rootfs
- large: using the pyra rootfs as rootfs
- arm64: for arm64 docker nodes
Basic usage
sudo docker run -it --rm sebt3/pyra-builder:large bash -l
Then use exactly as pyra-debian-cross, the toolchain live in /toolchain
Using a volume mount for dbp
Code:
mkdir /tmp/out
sudo docker run -it --rm -v /tmp/out:/out sebt3/pyra-builder:large bash -l
The produced dbp will still be available in /tmp/out on your host.
Automating build
Included in the image, there's an automated dbp build system.
Here is a little demo :
Code:
mkdir /tmp/out
git clone http://dev.pyra-handheld.com/sebt3/dosbox.git
sudo docker run -it --rm -v /tmp/out:/out -v $PWD/dosbox:/drone/src sebt3/pyra-builder:slim
ls -l /tmp/out/dosbox.dbp
Automated publish to a ssh target
Code:
key="$(cat ~/.ssh/id_rsa)"
sudo docker run -it --rm -e PLUGIN_SSHDEST="user@hostname:/path/where/to/drop/dbp_files/" -e PLUGIN_SSHKEY="$key" -v $PWD/dosbox:/drone/src sebt3/pyra-builder:slim
ssh user@hostname ls -l /path/where/to/drop/dbp_files/
Usage with drone.io
drone.io is a CI/CD docker based solution.
Here is a sample .drone.yml file :
Code:
kind: pipeline
name: default
steps:
- name: pyra
image: sebt3/pyra-builder:large
settings:
sshDest: "user@hostname:/path/where/to/drop/dbp_files/"
sshKey:
from_secret: depo_key
---
kind: secret
name: depo_key
get:
path: depo-ssh
name: id_rsa
The depo-ssh secret have to contain the id_rsa file.
Usage with gitlab-ci
Here is a sample .gitlab-ci.yml file :
Code:
build:
image: sebt3/pyra-builder:slim
stage: build
script:
- /usr/bin/entrypoint.sh
- mv /out/*.dbp .
artifacts:
paths:
- '*.dbp'
If you want it to upload to a ssh destination, then get to your gitlab "project settting/CI CD" page, "Expand" the "variables" section.
Then create a line with
- Type: Variable
- Key: PLUGIN_SSHDEST
- Value : something like : "user@hostname:/path/where/to/drop/dbp_files/"
- State: "protected"
And another one :
- Type: File
- Key: PLUGIN_SSHKEY
- Value : the content of your ~/.ssh/id_rsa file that you use to log in on this target
- State: "protected"
This way theses secrets values wont be displayd.
Last edited: