diff --git a/.gitea/workflows/check.yaml b/.gitea/workflows/check.yaml new file mode 100644 index 0000000..fb645e4 --- /dev/null +++ b/.gitea/workflows/check.yaml @@ -0,0 +1,33 @@ +name: Check + +on: + push: + branches: + - main + pull_request: + types: [opened, reopened, edited, auto_merge_enabled] + +jobs: + check: + name: check + runs-on: ubuntu-latest + if: | + contains(github.event.head_commit.message, 'bump:') == false && + contains(github.event.head_commit.message, 'Merge pull request') == false + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Nix + uses: cachix/install-nix-action@v31 + with: + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use Cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" + + - name: Check + run: nix flake check diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml new file mode 100644 index 0000000..ec37a1d --- /dev/null +++ b/.gitea/workflows/release.yaml @@ -0,0 +1,99 @@ +name: Release + +on: + push: + tags: + - "*" + +jobs: + check: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Nix + uses: cachix/install-nix-action@v31 + with: + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use Cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" + + - name: Check + run: nix flake check + + release: + runs-on: ubuntu-latest + needs: check + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Nix + uses: cachix/install-nix-action@v31 + with: + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use Cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" + + - name: Build + run: > + nix build + .#trevstack-linux-amd64 + .#trevstack-linux-arm64 + .#trevstack-linux-arm + .#trevstack-windows-amd64 + .#trevstack-darwin-amd64 + .#trevstack-darwin-arm64 + + - name: Release + uses: akkuman/gitea-release-action@v1 + with: + files: |- + result*/bin/* + + # https://docs.docker.com/build/ci/github-actions/manage-tags-labels/ + package: + runs-on: ubuntu-latest + needs: release # Wait for binary cache to propagate + steps: + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + # list of Docker images to use as base name for tags + images: | + ${{ github.repository }} + ghcr.io/${{ github.repository }} + # generate Docker tags based on the following events/attributes + tags: | + type=ref,event=branch + type=semver,pattern={{version}} + + - name: Login to Gitea Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ vars.URL }} + username: ${{ vars.USERNAME }} + password: ${{ secrets.PASSWORD }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and push + uses: docker/build-push-action@v6 + with: + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.gitea/workflows/update.yaml b/.gitea/workflows/update.yaml new file mode 100644 index 0000000..61d8857 --- /dev/null +++ b/.gitea/workflows/update.yaml @@ -0,0 +1,39 @@ +name: Update + +on: + schedule: + - cron: "0 0 * * *" + workflow_dispatch: + +jobs: + update: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Nix + uses: cachix/install-nix-action@v31 + with: + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use Cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" + + # https://github.com/actions/checkout/issues/13 + - name: Set Git Config + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + + - name: Update + run: nix run .#update + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v7 + with: + title: update + body: automatic update