kind: pipeline name: amd64 [debug] platform: arch: amd64 steps: - name: build [debug] image: rust:1.71.1-slim-bookworm commands: - rustc --version - cargo --version # Stupid workarounds, for stupid problems - echo "nameserver 1.1.1.1" >> /etc/resolv.conf - echo "nameserver 1.0.0.1" >> /etc/resolv.conf - cargo build --all - name: test [debug] image: rust:1.71.1-slim-bookworm commands: - rustc --version - cargo --version # Stupid workarounds, for stupid problems - echo "nameserver 1.1.1.1" >> /etc/resolv.conf - echo "nameserver 1.0.0.1" >> /etc/resolv.conf - cargo test --all - name: lint-clippy [debug] image: rust:1.71.1-slim-bookworm commands: - rustc --version - cargo --version # Stupid workarounds, for stupid problems - echo "nameserver 1.1.1.1" >> /etc/resolv.conf - echo "nameserver 1.0.0.1" >> /etc/resolv.conf - rustup component add clippy - cargo clippy --all --- kind: pipeline name: arm64 [debug] platform: arch: arm64 steps: - name: build [debug] image: rust:1.71.1-slim-bookworm commands: - rustc --version - cargo --version # Stupid workarounds, for stupid problems - echo "nameserver 1.1.1.1" >> /etc/resolv.conf - echo "nameserver 1.0.0.1" >> /etc/resolv.conf - cargo build --all - name: test [debug] image: rust:1.71.1-slim-bookworm commands: - rustc --version - cargo --version # Stupid workarounds, for stupid problems - echo "nameserver 1.1.1.1" >> /etc/resolv.conf - echo "nameserver 1.0.0.1" >> /etc/resolv.conf - cargo test --all - name: lint-clippy [debug] image: rust:1.71.1-slim-bookworm commands: - rustc --version - cargo --version # Stupid workarounds, for stupid problems - echo "nameserver 1.1.1.1" >> /etc/resolv.conf - echo "nameserver 1.0.0.1" >> /etc/resolv.conf - rustup component add clippy - cargo clippy --all --- kind: pipeline name: amd64 [release] platform: arch: amd64 steps: - name: build and test [release] image: rust:1.71.1-slim-bookworm commands: - rustc --version - cargo --version # Stupid workarounds, for stupid problems - echo "nameserver 1.1.1.1" >> /etc/resolv.conf - echo "nameserver 1.0.0.1" >> /etc/resolv.conf - cargo test --all --release --- kind: pipeline name: arm64 [release] platform: arch: arm64 steps: - name: build and test [release] image: rust:1.71.1-slim-bookworm commands: - rustc --version - cargo --version # Stupid workarounds, for stupid problems - echo "nameserver 1.1.1.1" >> /etc/resolv.conf - echo "nameserver 1.0.0.1" >> /etc/resolv.conf - cargo test --all --release --- kind: pipeline name: rustfmt steps: - name: Format Project with rustfmt image: rust:1.71.1-alpine commands: - rustc --version - cargo --version # Stupid workarounds, for stupid problems - echo "nameserver 1.1.1.1" >> /etc/resolv.conf - echo "nameserver 1.0.0.1" >> /etc/resolv.conf - rustup component add rustfmt - cargo fmt --all --check && echo "No formatting required, exiting early..." && exit 0 - cargo fmt --all --verbose # Check for format loop - apk add git - '[ "$(git log -1 --pretty=%B | grep -E ".+")" = "rustfmt" ] && echo "format loop detected, aborting..." && exit 1' # Get necessary packages - apk add openssh gpg gpg-agent # configure SSH and import private key - mkdir -p "$${HOME}/.ssh" - echo "$SSH_PRIVATE_KEY" > "$${HOME}/.ssh/git" - echo "Host git.libre.moe" >> "$${HOME}/.ssh/config" - echo " User git" >> "$${HOME}/.ssh/config" - echo " IdentityFile $${HOME}/.ssh/git" >> "$${HOME}/.ssh/config" - echo "$GITEA_ED25519_SIG" >> "$${HOME}/.ssh/known_hosts" - echo "$GITEA_RSA_SIG" >> "$${HOME}/.ssh/known_hosts" - echo "$GITEA_ECDSA_SIG" >> "$${HOME}/.ssh/known_hosts" - chmod 700 -R "$${HOME}/.ssh" # setup gpg - gpg-agent --daemon # the git config gpg.program absolutely despises anything other than a path, including additional arguments. # so we just put it into it's own shell script and use that later - echo "#!/bin/sh" >> /tmp/gpg.sh - echo gpg --batch --pinentry-mode loopback --passphrase '$GPG_PASSPHRASE' \$@ >> /tmp/gpg.sh - chmod 777 /tmp/gpg.sh # import gpg key - echo "$GPG_PRIVKEY" > /tmp/private.key - /tmp/gpg.sh --import /tmp/private.key >> /tmp/import.sh || exit 2 # configure git - git config --local user.name "WANessa" - git config --local user.email "$GIT_EMAIL_ADDRESS" - git config --local user.signingkey "$GPG_PUBKEY_ID" - git config --local gpg.program "/tmp/gpg.sh" # see above comment # Uncomment below line for ssh debugging # - git config core.sshCommand '/usr/bin/ssh -v' - git remote add ssh "$DRONE_GIT_SSH_URL" # commit and push every modified file, does not include new files, because why should it? - GIT_COMMITTER_NAME="WANessa" GIT_COMMITTER_EMAIL="$GIT_EMAIL_ADDRESS" git commit --author "$DRONE_COMMIT_AUTHOR_NAME <$DRONE_COMMIT_AUTHOR_EMAIL>" -S -a -m "rustfmt" - git push ssh environment: SSH_PRIVATE_KEY: from_secret: WANESSA_SSH_PRIVKEY GIT_EMAIL_ADDRESS: from_secret: WANESSA_EMAIL_ADDRESS GITEA_ED25519_SIG: from_secret: GIT_ED25519_SIG GITEA_RSA_SIG: from_secret: GIT_RSA_SIG GITEA_ECDSA_SIG: from_secret: GIT_ECDSA_SIG GPG_PUBKEY_ID: from_secret: WANESSA_GPG_PUBKEY_ID GPG_PASSPHRASE: from_secret: WANESSA_GPG_PASSPHRASE GPG_PRIVKEY: from_secret: WANESSA_GPG_PRIVKEY depends_on: - amd64 [debug] - arm64 [debug] - amd64 [release] - arm64 [release]