diff --git a/.github/workflows/aur-pub.yml b/.github/workflows/aur-pub.yml new file mode 100644 index 0000000..8d23c27 --- /dev/null +++ b/.github/workflows/aur-pub.yml @@ -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 diff --git a/.gitignore b/.gitignore index b03583c..d4be9f8 100644 --- a/.gitignore +++ b/.gitignore @@ -14,5 +14,6 @@ # End of https://www.gitignore.io/api/rust +# Distributions *.rpm *.deb diff --git a/dist/build/deploy.sh b/dist/build/deploy.sh index 24dfc75..88e462e 100755 --- a/dist/build/deploy.sh +++ b/dist/build/deploy.sh @@ -7,25 +7,30 @@ fi VERSION=$1 -mkdir -p pkgs/${VERSION}/ +# Create pkgs directory +cd .. +PKGS_DIR=$(pwd)/pkgs +cd - +mkdir -p ${PKGS_DIR}/ # Build x86_64 cd x86_64/ docker build --tag termscp-${VERSION}-x86_64 . # Create container and get deb, rpm cd - -mkdir -p pkgs/${VERSION}/deb/ -mkdir -p pkgs/${VERSION}/rpm/ +mkdir -p ${PKGS_DIR}/deb/ +mkdir -p ${PKGS_DIR}/rpm/ 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/release/rpmbuild/RPMS/x86_64/termscp-${VERSION}-1.x86_64.rpm pkgs/${VERSION}/rpm/ +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_DIR}/rpm/ # Build x86_64_archlinux cd x86_64_archlinux/ docker build --tag termscp-${VERSION}-x86_64_archlinux . # Create container and get AUR pkg 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) 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 $? diff --git a/dist/build/x86_64_archlinux/Dockerfile b/dist/build/x86_64_archlinux/Dockerfile index 201320e..9fb4d60 100644 --- a/dist/build/x86_64_archlinux/Dockerfile +++ b/dist/build/x86_64_archlinux/Dockerfile @@ -6,7 +6,13 @@ RUN pacman -Syu --noconfirm \ git \ gcc \ 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 RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /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 # Build pkgs 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"]