[mirror] Scalable static site server for Git forges (like GitHub Pages)
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v0.3.1 107 lines 4.5 kB view raw
1name: CI 2 3on: 4 push: 5 pull_request: 6 workflow_dispatch: 7 8env: 9 FORGE: codeberg.org 10 11jobs: 12 check: 13 runs-on: codeberg-small-lazy 14 container: 15 image: docker.io/library/node:24-trixie-slim@sha256:fcdfd7bcd8f641c8c76a8950343c73912d68ba341e8dd1074e663b784d3e76f4 16 steps: 17 - name: Check out source code 18 uses: https://code.forgejo.org/actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 19 - name: Set up toolchain 20 uses: https://code.forgejo.org/actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0 21 with: 22 go-version: '>=1.25.0' 23 - name: Install dependencies 24 run: | 25 apt-get -y update 26 apt-get -y install ca-certificates 27 go install honnef.co/go/tools/cmd/staticcheck@latest 28 - name: Build service 29 run: | 30 go build 31 - name: Run static analysis 32 run: | 33 go vet 34 staticcheck 35 36 release: 37 # IMPORTANT: This workflow step will not work without the Releases unit enabled! 38 if: ${{ forge.ref == 'refs/heads/main' || startsWith(forge.event.ref, 'refs/tags/v') }} 39 needs: [check] 40 runs-on: codeberg-medium-lazy 41 container: 42 image: docker.io/library/node:24-trixie-slim@sha256:fcdfd7bcd8f641c8c76a8950343c73912d68ba341e8dd1074e663b784d3e76f4 43 steps: 44 - name: Check out source code 45 uses: https://code.forgejo.org/actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 46 - name: Set up toolchain 47 uses: https://code.forgejo.org/actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0 48 with: 49 go-version: '>=1.25.0' 50 - name: Install dependencies 51 run: | 52 apt-get -y update 53 apt-get -y install ca-certificates 54 - name: Build release assets 55 # If you want more platforms to be represented, send a pull request. 56 run: | 57 set -x 58 build() { GOOS=$1 GOARCH=$2 go build -o assets/git-pages.$1-$2$3; } 59 build windows amd64 .exe 60 build linux amd64 61 build linux arm64 62 build darwin arm64 63 - name: Create release 64 uses: https://code.forgejo.org/actions/forgejo-release@fc0488c944626f9265d87fbc4dd6c08f78014c63 # v2.7.3 65 with: 66 tag: ${{ startsWith(forge.event.ref, 'refs/tags/v') && forge.ref_name || 'latest' }} 67 release-dir: assets 68 direction: upload 69 override: true 70 prerelease: ${{ !startsWith(forge.event.ref, 'refs/tags/v') }} 71 72 package: 73 if: ${{ forge.ref == 'refs/heads/main' || startsWith(forge.event.ref, 'refs/tags/v') }} 74 needs: [check] 75 runs-on: codeberg-medium-lazy 76 container: 77 image: docker.io/library/node:24-trixie-slim@sha256:fcdfd7bcd8f641c8c76a8950343c73912d68ba341e8dd1074e663b784d3e76f4 78 steps: 79 - name: Install dependencies 80 run: | 81 apt-get -y update 82 apt-get -y install buildah ca-certificates 83 - name: Check out source code 84 uses: https://code.forgejo.org/actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 85 - name: Authenticate with Docker 86 run: | 87 buildah login --authfile=/tmp/authfile-${FORGE}.json \ 88 -u ${{ vars.PACKAGES_USER }} -p ${{ secrets.PACKAGES_TOKEN }} ${FORGE} 89 - name: Build container 90 run: | 91 printf '[storage]\ndriver="vfs"\nrunroot="/run/containers/storage"\ngraphroot="/var/lib/containers/storage"\n' | tee /etc/containers/storage.conf 92 buildah build ${CACHE} --arch=amd64 --tag=container:${VER}-amd64 93 buildah build ${CACHE} --arch=arm64 --tag=container:${VER}-arm64 94 buildah manifest create container:${VER} \ 95 container:${VER}-amd64 \ 96 container:${VER}-arm64 97 env: 98 BUILDAH_ISOLATION: chroot 99 VER: ${{ startsWith(forge.event.ref, 'refs/tags/v') && forge.ref_name || 'latest' }} 100 CACHE: ${{ format('--authfile=/tmp/authfile-{0}.json --layers --cache-from {0}/{1}/cache --cache-to {0}/{1}/cache', env.FORGE, forge.repository) }} 101 - if: ${{ forge.repository == 'git-pages/git-pages' }} 102 name: Push container to Codeberg 103 run: | 104 buildah manifest push --authfile=/tmp/authfile-${FORGE}.json \ 105 --all container:${VER} "docker://${FORGE}/${{ forge.repository }}:${VER/v/}" 106 env: 107 VER: ${{ startsWith(forge.event.ref, 'refs/tags/v') && forge.ref_name || 'latest' }}