From bf362afb98f5e10ee5041f97cb242dd03d556963 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Sun, 12 Feb 2023 09:51:14 +0100 Subject: [PATCH] Add docker build (#1) --- .drone.yml | 46 +++++++++++++++++++ .github/workflows/build-version.yaml | 10 ++-- .github/workflows/container-stable.yaml | 10 ++-- .github/workflows/container-version.yaml | 10 ++-- .github/workflows/tests.yaml | 18 +------- .github/workflows/udeps_test.yaml | 25 ++++++++++ Cargo.lock | 26 +++++------ Cargo.toml | 4 +- Dockerfile | 6 +-- README.md | 9 ++-- .../{download_clin.sh => download_dudo.sh} | 10 ++-- scripts/rename_releases.sh | 4 +- 12 files changed, 118 insertions(+), 60 deletions(-) create mode 100644 .drone.yml create mode 100644 .github/workflows/udeps_test.yaml rename scripts/{download_clin.sh => download_dudo.sh} (86%) diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..bb32e67 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,46 @@ +--- +kind: pipeline +type: kubernetes +name: Containeraztion latest +steps: +- name: Docker build + resources: + limits: + cpu: 100 + memory: 2048MiB + when: + branch: + - main + privileged: true + settings: + registry: git.badhouseplants.net + username: allanger + password: + from_secret: GITEA_TOKEN + repo: git.badhouseplants.net/badhouseplants/clever-install + tags: latest + platforms: + - linux/arm64 + - linux/amd64 + +steps: +- name: Docker build + image: thegeeklab/drone-docker-buildx + trigger: + event: + - tag + resources: + limits: + cpu: 100 + memory: 2048MiB + privileged: true + settings: + registry: git.badhouseplants.net + username: allanger + password: + from_secret: GITEA_TOKEN + repo: git.badhouseplants.net/badhouseplants/clever-install + tags: latest + platforms: + - linux/arm64 + - linux/amd64 diff --git a/.github/workflows/build-version.yaml b/.github/workflows/build-version.yaml index c062dac..9ab674c 100644 --- a/.github/workflows/build-version.yaml +++ b/.github/workflows/build-version.yaml @@ -21,7 +21,7 @@ jobs: target: aarch64-apple-darwin steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: @@ -34,20 +34,20 @@ jobs: args: --release --all-features --target=${{ matrix.target }} - name: Archive build artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: build-${{matrix.target}} - path: ${{ github.workspace }}/target/${{ matrix.target }}/release/clin + path: ${{ github.workspace }}/target/${{ matrix.target }}/release/dudo release: needs: build runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Download artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 - name: Set version variable run: echo "CLIN_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV diff --git a/.github/workflows/container-stable.yaml b/.github/workflows/container-stable.yaml index 7dff83d..9a7f0f3 100644 --- a/.github/workflows/container-stable.yaml +++ b/.github/workflows/container-stable.yaml @@ -9,9 +9,11 @@ on: jobs: containerization: runs-on: ubuntu-latest + permissions: + packages: write steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set action link variable run: echo "LINK=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_ENV @@ -26,14 +28,14 @@ jobs: uses: docker/setup-buildx-action@master - name: Login to GitHub Container Registry - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Build - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: builder: ${{ steps.buildx.outputs.name }} context: . diff --git a/.github/workflows/container-version.yaml b/.github/workflows/container-version.yaml index 535160f..121c1ae 100644 --- a/.github/workflows/container-version.yaml +++ b/.github/workflows/container-version.yaml @@ -9,9 +9,11 @@ on: jobs: containerization: runs-on: ubuntu-latest + permissions: + packages: write steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set version variable run: echo "TAG=${GITHUB_REF##*/}" >> $GITHUB_ENV @@ -29,14 +31,14 @@ jobs: uses: docker/setup-buildx-action@master - name: Login to GitHub Container Registry - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Build - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: builder: ${{ steps.buildx.outputs.name }} context: . diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index b991a9b..1146b14 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -9,27 +9,11 @@ on: - "src/**" jobs: - cargo_udeps: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - - uses: actions-rs/toolchain@v1 - with: - toolchain: nightly - - - name: Install cargo-udeps - run: cargo install cargo-udeps --locked - - - name: Check dependencies - run: cargo +nightly udeps - cargo_test: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: diff --git a/.github/workflows/udeps_test.yaml b/.github/workflows/udeps_test.yaml new file mode 100644 index 0000000..700fdb8 --- /dev/null +++ b/.github/workflows/udeps_test.yaml @@ -0,0 +1,25 @@ +--- +name: "Tests" + +on: + pull_request: + branches: + - main + +jobs: + cargo_udeps: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + + - name: Install cargo-udeps + run: cargo install cargo-udeps --locked + + - name: Check dependencies + run: cargo +nightly udeps + \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index be84c84..195ab56 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -99,19 +99,6 @@ dependencies = [ "os_str_bytes", ] -[[package]] -name = "clin" -version = "0.1.0" -dependencies = [ - "clap", - "env_logger", - "handlebars", - "http", - "log", - "reqwest", - "serde", -] - [[package]] name = "core-foundation" version = "0.9.3" @@ -157,6 +144,19 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "dudo" +version = "0.1.0" +dependencies = [ + "clap", + "env_logger", + "handlebars", + "http", + "log", + "reqwest", + "serde", +] + [[package]] name = "encoding_rs" version = "0.8.31" diff --git a/Cargo.toml b/Cargo.toml index 823dd8b..13b9487 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "clin" +name = "dudo" version = "0.1.0" edition = "2021" @@ -12,4 +12,4 @@ env_logger = "0.10.0" log = "0.4.17" http = "0.2.8" serde = { version = "1.0.126", features = ["derive"] } -reqwest = { version = "0.11", features = ["json", "blocking"] } \ No newline at end of file +reqwest = { version = "0.11", features = ["json", "blocking"] } diff --git a/Dockerfile b/Dockerfile index 3e962ac..79e4779 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,8 +6,8 @@ RUN cargo build --release FROM alpine:3.17.1 -COPY --from=builder /src/target/release/clin /bin/clin +COPY --from=builder /src/target/release/dudo /bin/dudo RUN apk update && apk add --no-cache libressl-dev libc6-compat -RUN chmod +x /bin/clin +RUN chmod +x /bin/dudo WORKDIR /workdir -ENTRYPOINT ["/bin/clin"] +ENTRYPOINT ["/bin/dudo"] diff --git a/README.md b/README.md index 0cf5115..1c9a728 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -# Clever Install (clin) -> It's actually not and installer, but a downloader, clin just sounds better than cldow IMHO +# Dumb Downloader (dudo) # What's it about? It's just a tool to make downloading binaries for different platforms easier. @@ -33,15 +32,15 @@ Prebuilt binaries exist for **Linux x86_64** and **MacOS arm64** and **x86_64** Don't forget to add the binary to $PATH ``` -$ curl https://raw.githubusercontent.com/allanger/clever-install/main/scripts/download_clin.sh | bash -$ clin -h +$ curl https://raw.githubusercontent.com/allanger/clever-install/main/scripts/download_dudo.sh | bash +$ dudo -h ``` ### Docker You can use the `latest` or a `tagged` docker image ``` $ docker pull ghcr.io/allanger/clever-install:latest -$ docker run ghcr.io/allanger/clever-install:latest clin -h +$ docker run ghcr.io/allanger/clever-install:latest dudo -h ``` ### Build from source diff --git a/scripts/download_clin.sh b/scripts/download_dudo.sh similarity index 86% rename from scripts/download_clin.sh rename to scripts/download_dudo.sh index fa3f97b..60258e7 100644 --- a/scripts/download_clin.sh +++ b/scripts/download_dudo.sh @@ -36,15 +36,15 @@ esac LATEST_VERSION="v$(curl -s https://raw.githubusercontent.com/allanger/clever-install/main/Cargo.toml | awk -F ' = ' '$1 ~ /version/ { gsub(/[\"]/, "", $2); printf("%s",$2); exit}')" echo "Downloading $LATEST_VERSION" -RELEASE_NAME=clin-$LATEST_VERSION-$TARGET +RELEASE_NAME=dudo-$LATEST_VERSION-$TARGET RELEASE_URL="https://github.com/allanger/clever-install/releases/download/$LATEST_VERSION/$RELEASE_NAME" echo "Link for downloading: $RELEASE_URL" curl -LJO $RELEASE_URL -mv $RELEASE_NAME clin -chmod +x clin +mv $RELEASE_NAME dudo +chmod +x dudo -echo 'Make sure that clin is in your $PATH' +echo 'Make sure that dudo is in your $PATH' echo 'Try: ' echo ' $ export PATH=$PATH:$PWD' -echo ' $ clin -h' +echo ' $ dudo -h' diff --git a/scripts/rename_releases.sh b/scripts/rename_releases.sh index 8d23969..1243071 100755 --- a/scripts/rename_releases.sh +++ b/scripts/rename_releases.sh @@ -1,10 +1,10 @@ #!/bin/bash -echo 'renaming clin to clin-$VERSION-$SYSTEM format' +echo 'renaming dudo to dudo-$VERSION-$SYSTEM format' mkdir -p release echo "version - $CLIN_VERSION" for BUILD in build*; do SYSTEM=$(echo $BUILD | sed -e 's/build-//g') echo "system - $SYSTEM" - cp $BUILD/clin release/clin-$CLIN_VERSION-$SYSTEM + cp $BUILD/dudo release/dudo-$CLIN_VERSION-$SYSTEM done ls release