diff --git a/.forgejo/workflows/build-image.yaml b/.forgejo/workflows/build-image.yaml deleted file mode 100644 index bf3a301..0000000 --- a/.forgejo/workflows/build-image.yaml +++ /dev/null @@ -1,92 +0,0 @@ -name: Publish image -on: - push: - branches: - - main - workflow_dispatch: - -jobs: - bump-crate: - runs-on: rust - steps: - - run: cargo install cargo-bump - - name: Bump version and publish - uses: https://github.com/cocogitto/cocogitto-action@v3.10 - env: - NPM_REGISTRY_TOKEN: ${{ secrets.NPM_TOKEN_FORGEJO }} - with: - release: true - check-latest-tag-only: true - git-user: 'Cog Bot' - git-user-email: 'cog@alecodes.page' - - - create-docker-images: - runs-on: host - needs: - - bump-crate - steps: - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - registry: git.alecodes.page - username: ${{ vars.CONTAINER_REGISTRY_USER }} - password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v6 - with: - platforms: linux/amd64 - push: true - outputs: | - type=local,dest=./build-out - type=docker - tags: | - git.alecodes.page/alecodes/compendium:latest - git.alecodes.page/alecodes/compendium:${{ github.sha }} - - # - uses: actions/upload-artifact@v3 - # with: - # name: my-artifact - # path: ./build-out/app - # - # deploy: - # runs-on: ubuntu-latest - # needs: - # - create-docker-images - # steps: - # - uses: actions/download-artifact@v3 - # - name: Display structure of downloaded files - # run: ls -R - # - name: Publish release - # uses: https://code.forgejo.org/actions/forgejo-release@v2.5.0 - # with: - # url: "https://git.alecodes.page" - # repo: "alecodes/compendium" - # direction: upload - # # tag: "${{ github.ref_name }}" - # sha: "${{ github.sha }}" - # release-dir: . - # # token: ${{ secrets.TOKEN }} - # override: ${{ vars.OVERRIDE || "false" }} - # verbose: ${{ vars.VERBOSE || "false" }} - - # deploy: - # runs-on: ubuntu-latest - # needs: - # - create-docker-images - # steps: - # - name: Checkout code - # uses: actions/checkout@v4 - # - name: 'Docker Stack Deploy' - # uses: https://github.com/cssnr/stack-deploy-action@v1 - # with: - # host: ${{ vars.DOCKER_SWARM_HOST }} - # port: ${{ vars.DOCKER_SWARM_PORT }} - # user: ${{ secrets.DOCKER_SWARM_USER }} - # ssh_key: '${{ secrets.DOCKER_SWARM_SSH_KEY }}' - # file: 'docker-stack.yaml' - # name: 'personal_page' diff --git a/.justfile b/.justfile index 458adba..241c578 100644 --- a/.justfile +++ b/.justfile @@ -3,7 +3,10 @@ mod repo ".devfiles/justfile" set dotenv-load := true +bin_name := "compendium" release_mode := "dev" +container_registry := "git.alecodes.page/alecodes" +container_image_name := container_registry / bin_name [private] docker-compose +ARGS: @@ -11,9 +14,6 @@ docker-compose +ARGS: start-dev-services: (docker-compose "up --remove-orphans") -dev: - watchexec --no-vcs-ignore --clear --restart --watch=dist --watch=src cargo run {{ if release_mode == "prod" { "--release" } else { "" } }} - kitty-dev: kitten @ goto-layout tall kitten @ launch --cwd=current --dont-take-focus just build-frontend-watch @@ -30,3 +30,22 @@ build-frontend-watch: build-frontend: bun ./.devfiles/scripts/build-frontend.ts + +build: + podman build --tag {{ container_image_name }}:latest --cache-to {{ container_image_name }}-cache --cache-from {{ container_image_name }}-cache . + +dev: + watchexec --no-vcs-ignore --clear --restart --watch=dist --watch=src cargo run {{ if release_mode == "prod" { "--release" } else { "" } }} + +test: + cargo test + +publish: (build) + podman push {{ container_image_name }}:latest + podman push {{ container_image_name }}:latest {{ container_image_name }}:$(git rev-parse --short HEAD) + +deploy: + +clean: + podman system prune --build + cargo clean diff --git a/Dockerfile b/Dockerfile index 2bb1d67..fbbfed8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # ── Javascript ────────────────────────────────────────────────────────── -FROM oven/bun:1 AS bun +FROM docker.io/oven/bun:1 AS bun WORKDIR /usr/src/app # install dependencies into temp directory