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