From e7912713bfceb45de83e00efb4335905b86f9536 Mon Sep 17 00:00:00 2001 From: Tulili Date: Sun, 12 May 2024 01:59:50 -0300 Subject: [PATCH] feat: cleanup + taskfile for local building --- .gitattributes | 13 --------- .github/dependabot.yml | 11 -------- .github/semantic.yml | 3 --- .github/workflows/apk-package.yml | 32 ---------------------- .github/workflows/flake-check.yml | 15 ----------- .github/workflows/issue_management.yml | 24 ----------------- Earthfile | 35 ------------------------ Taskfile.yml | 15 +++++++++++ rpkg.macros | 4 +-- rpm.Containerfile | 37 ++++++++------------------ studio-cli.spec | 14 ++++------ 11 files changed, 33 insertions(+), 170 deletions(-) delete mode 100644 .gitattributes delete mode 100644 .github/dependabot.yml delete mode 100644 .github/semantic.yml delete mode 100644 .github/workflows/apk-package.yml delete mode 100644 .github/workflows/flake-check.yml delete mode 100644 .github/workflows/issue_management.yml delete mode 100644 Earthfile diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 97c14af..0000000 --- a/.gitattributes +++ /dev/null @@ -1,13 +0,0 @@ -*.yml linguist-detectable=true -*.yml linguist-language=YAML - -*.yaml linguist-detectable=true -*.yaml linguist-language=YAML - -*.just linguist-detectable=true -*.just linguist-documentation=false -*.just linguist-language=Just - -*.json linguist-detectable=true -*.json linguist-documentation=false -*.json linguist-language=JSON diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 9fe863f..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" diff --git a/.github/semantic.yml b/.github/semantic.yml deleted file mode 100644 index d90d1fe..0000000 --- a/.github/semantic.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -enabled: true -titleOnly: true diff --git a/.github/workflows/apk-package.yml b/.github/workflows/apk-package.yml deleted file mode 100644 index bf9df62..0000000 --- a/.github/workflows/apk-package.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Build APK package - -on: - workflow_dispatch: - pull_request: - - push: - paths-ignore: - - README.md - branches: - - "main" - -jobs: - build-apk: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Signing key - run: | - echo "$APK_SIGNING_SECRET" >> /tmp/signing-secret.priv - env: - APK_SIGNING_SECRET: ${{secrets.APK_SIGNING_SECRET}} - - name: Install Melange - run: /home/linuxbrew/.linuxbrew/bin/brew install melange - - name: Build package - run: /home/linuxbrew/.linuxbrew/bin/melange build --signing-key=/tmp/signing-secret.priv --runner=docker melange.yaml - - name: Upload packages - uses: actions/upload-artifact@v4 - with: - name: studio-cli-apk-package - path: ./packages diff --git a/.github/workflows/flake-check.yml b/.github/workflows/flake-check.yml deleted file mode 100644 index 0b7d577..0000000 --- a/.github/workflows/flake-check.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Commit Check -on: - push: - pull_request: - workflow_dispatch: -jobs: - run: - runs-on: ubuntu-latest - permissions: - issues: write - pull-requests: write - steps: - - uses: actions/checkout@v4 - - uses: DeterminateSystems/nix-installer-action@main - - run: nix flake check -L diff --git a/.github/workflows/issue_management.yml b/.github/workflows/issue_management.yml deleted file mode 100644 index a87275c..0000000 --- a/.github/workflows/issue_management.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Issue Management -on: - issues: - types: [opened] - pull_request: - types: [opened] -jobs: - run: - runs-on: ubuntu-latest - permissions: - issues: write - pull-requests: write - steps: - - name: Auto-assign issue - uses: pozil/auto-assign-issue@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - assignees: tulilirockz - numOfAssignee: 1 - - name: Add to Project Tracking - uses: actions/add-to-project@v1.0.1 - with: - project-url: https://github.com/orgs/atomic-studio-org/projects/3 - github-token: ${{ secrets.ADD_TO_PROJECT_TOKEN }} diff --git a/Earthfile b/Earthfile deleted file mode 100644 index f14be8d..0000000 --- a/Earthfile +++ /dev/null @@ -1,35 +0,0 @@ -VERSION 0.8 -PROJECT atomic-studio-org/cli - -studio-cli: - FROM registry.fedoraproject.org/fedora-toolbox - - RUN dnf -y install dnf-plugins-core \ - && dnf install --refresh -y \ - jq \ - docker-ce \ - docker-ce-cli \ - containerd.io \ - docker-buildx-plugin \ - docker-compose-plugin \ - buildah \ - podman \ - skopeo \ - distrobox - - COPY +cosign/cosign /usr/bin/cosign - - COPY (+install/bluebuild --BUILD_TARGET="x86_64-unknown-linux-gnu" --NIGHTLY=$NIGHTLY) /usr/bin/bluebuild - - ARG TAG - ARG LATEST=false - - RUN mkdir -p /bluebuild - WORKDIR /bluebuild - ENTRYPOINT ["bluebuild"] - - DO cargo+SAVE_IMAGE --IMAGE=$IMAGE --TAG=$TAG --LATEST=$LATEST --NIGHTLY=$NIGHTLY - -cosign: - FROM gcr.io/projectsigstore/cosign - SAVE ARTIFACT /ko-app/cosign diff --git a/Taskfile.yml b/Taskfile.yml index e69de29..88b89cb 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -0,0 +1,15 @@ +version: "3" + +tasks: + build:rpm: + desc: Generate RPM specs, definitions and files from the Studio-CLI containerfile. + generates: + - output/* + cmds: + - mkdir -p {{.OUT}} + - "{{.CONTAINER_MANAGER}} build -v $(realpath {{.OUT}}):/output:Z -f {{.TARGET}} . {{.CLI_ARGS}}" + vars: + CONTAINER_MANAGER: podman + TARGET: rpm.Containerfile + OUT: output + build: diff --git a/rpkg.macros b/rpkg.macros index 221aa83..0b3e517 100644 --- a/rpkg.macros +++ b/rpkg.macros @@ -1,6 +1,6 @@ -function studio-cli_version { +function git_ref { if [ "$GITHUB_REF_NAME" = "" ]; then - echo "0.1.0+$(git rev-parse --short HEAD)" + echo "$(git rev-parse --short HEAD)" else echo "$GITHUB_REF_NAME" fi diff --git a/rpm.Containerfile b/rpm.Containerfile index 6aaac59..87426b5 100644 --- a/rpm.Containerfile +++ b/rpm.Containerfile @@ -1,29 +1,14 @@ ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-latest}" - -FROM registry.fedoraproject.org/fedora:${FEDORA_MAJOR_VERSION} AS builder - -ENV OUTPUT_ROOT=/app/output - -WORKDIR /app +ARG REGISTRY=registry.fedoraproject.org/fedora +FROM ${REGISTRY}:${FEDORA_MAJOR_VERSION} AS builder ADD . /app - -RUN dnf install \ - --disablerepo='*' \ - --enablerepo='fedora,updates' \ - --setopt install_weak_deps=0 \ - --nodocs \ - --assumeyes \ - 'dnf-command(builddep)' \ - rpkg \ - rpm-build && \ - mkdir -p $OUTPUT_ROOT/{,output,atomic-studio/rpms} && \ - rpkg spec --outdir "$OUTPUT_ROOT" && \ - dnf builddep -y output/studio-cli.spec && \ - rpkg local --outdir "$OUTPUT_ROOT/output" && \ - mv ${OUTPUT_ROOT}/output/noarch/* "${OUTPUT_ROOT}/atomic-studio/rpms" - -FROM scratch - -ENV OUTPUT_ROOT=/app/output -COPY --from=builder ${OUTPUT_ROOT}/atomic-studio/rpms /rpms +WORKDIR /app +VOLUME ["/output"] + +RUN dnf install --disablerepo='*' --enablerepo='fedora,updates' --setopt install_weak_deps=0 --nodocs --assumeyes 'dnf-command(builddep)' rpkg rpm-build + +RUN mkdir -p /output/{,atomic-studio/rpms} && \ + rpkg spec --outdir /output && \ + dnf builddep -y /output/studio-cli.spec && \ + rpkg local --outdir /output diff --git a/studio-cli.spec b/studio-cli.spec index 4e4bbcf..aa22710 100644 --- a/studio-cli.spec +++ b/studio-cli.spec @@ -1,20 +1,15 @@ Name: studio-cli Vendor: atomic-studio-org -Version: {{{ studio-cli_version }}} +Version: 0.1.0+{{{ git_ref }}} Release: 0%{?dist} Summary: Manager for Atomic Studio -License: Apache-2.0 +License: 3.0-BSD URL: https://github.com/%{vendor}/%{name} -# Detailed information about the source Git repository and the source commit -# for the created rpm package VCS: {{{ git_dir_vcs }}} - -# git_dir_pack macro places the repository content (the source files) into a tarball -# and returns its filename. The tarball will be used to build the rpm. Source: {{{ git_dir_pack }}} BuildArch: noarch -Supplements: podman +Supplements: podman docker Requires: nu %description @@ -30,7 +25,8 @@ Manages Atomic Studio installations %install mkdir -p %{buildroot}%{_libexecdir}/studio-cli %{buildroot}/%{_bindir} -sed -i 's~\.\/libexec~\/usr\/libexec/~' src/%{pname} +sed -i 's~\.\/libexec~\/usr\/libexec/%{name}~' src/%{pname} +cat src/%{pname} install -D -m 0755 src/%{pname} %{buildroot}%{_bindir}/%{pname} cp -r src/libexec/* %{buildroot}%{_libexecdir}/%{name}