92 lines
2.9 KiB
YAML
92 lines
2.9 KiB
YAML
---
|
|
- name: Setup container for building.
|
|
hosts: localhost
|
|
tags: setup
|
|
tasks:
|
|
- name: Create a container
|
|
containers.podman.podman_container:
|
|
name: ostree-debian-builder
|
|
image: docker.io/library/debian:bullseye
|
|
volume: "{{ playbook_dir | dirname }}:/project:Z"
|
|
command: 'sleep infinity'
|
|
state: started
|
|
- name: Add the container to inventory.
|
|
ansible.builtin.add_host:
|
|
name: ostree-debian-builder
|
|
ansible_connection: containers.podman.podman
|
|
ansible_user: root
|
|
ansible_python_interpreter: /usr/bin/python3
|
|
changed_when: false
|
|
- name: Get the basic depedencies.
|
|
delegate_to: ostree-debian-builder
|
|
raw: bash -c "apt update && apt install -y python3 build-essential devscripts"
|
|
|
|
- name: Build package.
|
|
hosts: ostree-debian-builder
|
|
tags: build
|
|
tasks:
|
|
- name: Make out of tree build directory.
|
|
ansible.builtin.tempfile:
|
|
state: directory
|
|
suffix: build
|
|
prefix: project
|
|
register: temp_file_loc
|
|
- name: Copy build files to location.
|
|
ansible.builtin.shell:
|
|
cmd: "cp -r /project {{ temp_file_loc.path }}/. "
|
|
- name: Install build dependencies.
|
|
ansible.builtin.shell:
|
|
chdir: "{{temp_file_loc.path }}/project"
|
|
cmd: |
|
|
apt update
|
|
mk-build-deps
|
|
apt install -y ./*.deb
|
|
- name: Call debuild.
|
|
ansible.builtin.shell:
|
|
chdir: "{{temp_file_loc.path }}/project"
|
|
cmd: |
|
|
export DEB_BUILD_OPTIONS=nocheck
|
|
debuild -us -uc -b
|
|
- name: Copy deb file back to the main directory.
|
|
ansible.builtin.shell:
|
|
cmd: "cp -r {{ temp_file_loc.path }}/*.deb /project/."
|
|
- name: Copy changes file back to the main directory.
|
|
ansible.builtin.shell:
|
|
cmd: "cp -r {{ temp_file_loc.path }}/*.changes /project/."
|
|
- name: Copy buildinfo file back to the main directory.
|
|
ansible.builtin.shell:
|
|
cmd: "cp -r {{ temp_file_loc.path }}/*.buildinfo /project/."
|
|
|
|
- name: Upload to packaging server.
|
|
hosts: packaging
|
|
tags: deploy
|
|
tasks:
|
|
- name: Copy packages to packaging server.
|
|
ansible.builtin.copy:
|
|
src: "{{ item }}"
|
|
dest: ~/public/apt/mini-dinstall/incoming/
|
|
with_fileglob: ../*.deb
|
|
- name: Ditto the changes files.
|
|
ansible.builtin.copy:
|
|
src: "{{ item }}"
|
|
dest: ~/public/apt/mini-dinstall/incoming/
|
|
with_fileglob: ../*.changes
|
|
register: copied_changes
|
|
- name: Ditto the buildinfo files.
|
|
ansible.builtin.copy:
|
|
src: "{{ item }}"
|
|
dest: ~/public/apt/mini-dinstall/incoming/
|
|
with_fileglob: ../*.buildinfo
|
|
register: copied_buildinfo
|
|
- name: Run mini-dinstall.
|
|
ansible.builtin.shell:
|
|
cmd: "mini-dinstall --batch"
|
|
|
|
- name: Cleanup
|
|
hosts: localhost
|
|
tags: cleanup
|
|
tasks:
|
|
- name: Stop the container.
|
|
containers.podman.podman_container:
|
|
name: ostree-debian-builder
|
|
state: absent |