Arch publish workflow and build with docker

This commit is contained in:
ChristianVisintin
2020-12-21 11:48:41 +01:00
parent 1a5bd394b6
commit 1d112b3f32
4 changed files with 42 additions and 8 deletions

20
.github/workflows/aur-pub.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: aur-pub
on:
push:
tags:
- "*"
jobs:
aur-publish:
steps:
- uses: actions/checkout@v2
- name: Publish AUR package
uses: KSXGitHub/github-actions-deploy-aur@2.2.3
with:
pkgname: my-awesome-package
pkgbuild: ./dist/pkgs/arch/PKGBUILD
commit_username: ${{ secrets.AUR_USERNAME }}
commit_email: ${{ secrets.AUR_EMAIL }}
ssh_private_key: ${{ secrets.AUR_KEY }}
commit_message: Update AUR package
ssh_keyscan_types: rsa,dsa,ecdsa,ed25519

1
.gitignore vendored
View File

@@ -14,5 +14,6 @@
# End of https://www.gitignore.io/api/rust # End of https://www.gitignore.io/api/rust
# Distributions
*.rpm *.rpm
*.deb *.deb

19
dist/build/deploy.sh vendored
View File

@@ -7,25 +7,30 @@ fi
VERSION=$1 VERSION=$1
mkdir -p pkgs/${VERSION}/ # Create pkgs directory
cd ..
PKGS_DIR=$(pwd)/pkgs
cd -
mkdir -p ${PKGS_DIR}/
# Build x86_64 # Build x86_64
cd x86_64/ cd x86_64/
docker build --tag termscp-${VERSION}-x86_64 . docker build --tag termscp-${VERSION}-x86_64 .
# Create container and get deb, rpm # Create container and get deb, rpm
cd - cd -
mkdir -p pkgs/${VERSION}/deb/ mkdir -p ${PKGS_DIR}/deb/
mkdir -p pkgs/${VERSION}/rpm/ mkdir -p ${PKGS_DIR}/rpm/
CONTAINER_NAME=$(docker create termscp-${VERSION}-x86_64 termscp-${VERSION}-x86_64) CONTAINER_NAME=$(docker create termscp-${VERSION}-x86_64 termscp-${VERSION}-x86_64)
docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/debian/termscp_${VERSION}_amd64.deb pkgs/${VERSION}/deb/ docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/debian/termscp_${VERSION}_amd64.deb ${PKGS_DIR}/deb/
docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/release/rpmbuild/RPMS/x86_64/termscp-${VERSION}-1.x86_64.rpm pkgs/${VERSION}/rpm/ docker cp ${CONTAINER_NAME}:/usr/src/termscp/target/release/rpmbuild/RPMS/x86_64/termscp-${VERSION}-1.x86_64.rpm ${PKGS_DIR}/rpm/
# Build x86_64_archlinux # Build x86_64_archlinux
cd x86_64_archlinux/ cd x86_64_archlinux/
docker build --tag termscp-${VERSION}-x86_64_archlinux . docker build --tag termscp-${VERSION}-x86_64_archlinux .
# Create container and get AUR pkg # Create container and get AUR pkg
cd - cd -
mkdir -p pkgs/${VERSION}/arch/ mkdir -p ${PKGS_DIR}/arch/
CONTAINER_NAME=$(docker create termscp-${VERSION}-x86_64_archlinux termscp-${VERSION}-x86_64_archlinux) CONTAINER_NAME=$(docker create termscp-${VERSION}-x86_64_archlinux termscp-${VERSION}-x86_64_archlinux)
docker cp ${CONTAINER_NAME}:/usr/src/termscp/termscp-${VERSION}-x86_64.tar.gz pkgs/arch/ docker cp ${CONTAINER_NAME}:/usr/src/termscp/termscp-${VERSION}-x86_64.tar.gz pkgs/arch/
docker cp ${CONTAINER_NAME}:/usr/src/termscp/PKGBUILD pkgs/${VERSION}/arch/ docker cp ${CONTAINER_NAME}:/usr/src/termscp/PKGBUILD ${PKGS_DIR}/arch/
docker cp ${CONTAINER_NAME}:/usr/src/termscp/.SRCINFO ${PKGS_DIR}/arch/
exit $? exit $?

View File

@@ -6,7 +6,13 @@ RUN pacman -Syu --noconfirm \
git \ git \
gcc \ gcc \
openssl \ openssl \
pkg-config pkg-config \
sudo
# Create build user
RUN useradd build -m && \
passwd -d build && \
mkdir -p termscp && \
chown -R build.build termscp/
# Install rust # Install rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rust.sh && \ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rust.sh && \
chmod +x /tmp/rust.sh && \ chmod +x /tmp/rust.sh && \
@@ -21,5 +27,7 @@ RUN source $HOME/.cargo/env && cargo install cargo-aur
RUN source $HOME/.cargo/env && cargo build --release RUN source $HOME/.cargo/env && cargo build --release
# Build pkgs # Build pkgs
RUN source $HOME/.cargo/env && cargo aur RUN source $HOME/.cargo/env && cargo aur
# Create SRCINFO
RUN chown -R build.build ../termscp/ && sudo -u build bash -c 'makepkg --printsrcinfo > .SRCINFO'
CMD ["sh"] CMD ["sh"]