Skip to content

chore(deps): update actions/checkout digest to 1d96c77 #154

chore(deps): update actions/checkout digest to 1d96c77

chore(deps): update actions/checkout digest to 1d96c77 #154

---
env:
PACKAGE_NAME: promtail
# renovate: datasource=github-releases depName=grafana/loki
PACKAGE_VERSION: v3.0.0
PACKAGE_DESCRIPTION: "Promtail is an agent which ships the contents of local logs to a private Loki instance or Grafana Cloud. It is usually deployed to every machine that has applications needed to be monitored."
APT_DEPENDENCIES: "git build-essential libsystemd-dev gccgo-aarch64-linux-gnu gccgo-arm-linux-gnueabi curl xz-utils"
name: Build, package and publish
"on":
push:
paths-ignore:
- "*.md"
- LICENSE
- .github/renovate.json
- .gitignore
branches:
- main
pull_request:
branches:
- main
jobs:
build:
name: Build & Package
runs-on: ubuntu-latest
strategy:
matrix:
goarch:
- amd64
- arm64
- arm
fail-fast: true
container: debian:bookworm-slim
steps:
- name: Install build dependencies
run: apt-get update && apt-get install -y ${APT_DEPENDENCIES}
if: ${{ env.APT_DEPENDENCIES != '' }}
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4
with:
repository: grafana/loki.git
ref: ${{ env.PACKAGE_VERSION }}
- name: Set up Golang
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5
with:
go-version: 1.21
cache: false
- id: go-cache-paths
run: |
echo "go-build=$(go env GOCACHE)" >> $GITHUB_OUTPUT
echo "go-mod=$(go env GOMODCACHE)" >> $GITHUB_OUTPUT
- name: Golang cache
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
with:
path: |
${{ steps.go-cache-paths.outputs.go-build }}
${{ steps.go-cache-paths.outputs.go-mod }}
key: ${{ runner.os }}-go-${{ matrix.goarch }}-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-${{ matrix.goarch }}-
- name: Build
run: |
case ${ARCH} in
amd64)
export CC=gcc;;
arm64)
export CC=aarch64-linux-gnu-gcc;;
arm)
export CC=arm-linux-gnueabi-gcc;;
esac
git config --global --add safe.directory '*'
export GIT_REVISION=$(git rev-parse --short HEAD)
echo $GIT_REVISION
export GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
echo $GIT_BRANCH
export IMAGE_TAG=$(./tools/image-tag)
echo $IMAGE_TAG
export DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
GOOS=linux GOARCH=${ARCH} go build -ldflags '-s -w -X ${VPREFIX}.Branch=${GIT_BRANCH} -X ${VPREFIX}.Version=${IMAGE_TAG} -X ${VPREFIX}.Revision=${GIT_REVISION} -X ${VPREFIX}.BuildUser=$(whoami)@$(hostname) -X ${VPREFIX}.BuildDate=${DATE}' -tags netgo -mod vendor --tags=promtail_journal_enabled -o dist/${PACKAGE_NAME}_linux_${ARCH} ./clients/cmd/promtail
env:
ARCH: ${{ matrix.goarch }}
VPREFIX: github.com/grafana/loki/pkg/util/build
CGO_ENABLED: 1
GOARM: 6
- name: Install upx
run: |
curl -L -O https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-amd64_linux.tar.xz
tar -xvf upx-4.2.2-amd64_linux.tar.xz
mv upx-4.2.2-amd64_linux/upx /usr/local/bin
- name: Squish
run: upx dist/${PACKAGE_NAME}_linux_${ARCH}
env:
ARCH: ${{ matrix.goarch }}
- name: Upload artifact
uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4
with:
name: binary-${{ matrix.goarch }}
path: dist/${{ env.PACKAGE_NAME }}_linux_${{ matrix.goarch }}
build-package:
name: Build Deb Package
runs-on: ubuntu-latest
strategy:
matrix:
goarch:
- amd64
- arm64
- arm
fail-fast: true
needs: build
steps:
- name: Check out code
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Download build artifact
uses: actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d # v4
with:
name: binary-${{ matrix.goarch }}
- name: Package
run: |
case ${ARCH} in
amd64)
export DEB_ARCH=amd64;;
arm)
export DEB_ARCH=armhf;;
arm64)
export DEB_ARCH=aarch64;;
esac
chmod +x ${PACKAGE_NAME}_*
bundle exec fpm -f \
-s dir \
-t deb \
--license Apache \
--deb-priority optional \
--deb-systemd-enable \
--deb-systemd-restart-after-upgrade \
--deb-systemd-auto-start \
--maintainer [email protected] \
--vendor https://grafana.com/ \
-n ${DEB_NAME} \
--description "${APP_DESCRIPTION}" \
--url ${APP_URL} \
--prefix / \
-a ${DEB_ARCH} \
-v ${PACKAGE_VERSION}-$(printf "%04d" $GITHUB_RUN_NUMBER) \
--before-install deb_scripts/before_install.sh \
--before-upgrade deb_scripts/before_upgrade.sh \
--after-remove deb_scripts/after_remove.sh \
--deb-systemd deb_scripts/promtail.service \
--config-files /etc/promtail/promtail.yml \
promtail.yml=/etc/promtail/promtail.yml \
promtail_linux_${ARCH}=/usr/bin/promtail
env:
DEB_NAME: ${{ env.PACKAGE_NAME }}
APP_DESCRIPTION: ${{ env.PACKAGE_DESCRIPTION }}
APP_URL: https://github.com/grafana/loki/blob/master/docs/clients/promtail/
ARCH: ${{ matrix.goarch }}
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
- name: Upload build artifact
uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4
with:
name: deb-package-${{ matrix.goarch }}
path: "*.deb"
publish:
name: Publish
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
needs: build-package
steps:
- name: Download deb artifact
uses: actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d # v4
with:
pattern: deb-package-*
merge-multiple: true
- name: Upload to Apt repo
env:
APT_CREDENTIALS: ${{ secrets.APT_CREDENTIALS }}
APT_KEY_PASSPHRASE: ${{ secrets.APT_KEY_PASSPHRASE }}
run: |
echo $APT_CREDENTIALS > aptly-auth
find -type f -name "*.deb" -exec curl -f --netrc-file aptly-auth -XPOST -F file=@{} https://apttoo.growse.com/api/files/${PACKAGE_NAME} \;
export result=$(curl -f --netrc-file aptly-auth -X POST https://apttoo.growse.com/api/repos/defaultrepo/file/${PACKAGE_NAME})
echo $result
export failed=$(echo $result | jq '.FailedFiles | length')
if [[ "$failed" != "0" ]]; then exit 1; fi
curl -f --netrc-file aptly-auth -X PUT -H"Content-type: application/json" --data '{"Signing":{"Passphrase":"'"$APT_KEY_PASSPHRASE"'","Batch":true}}' https://apttoo.growse.com/api/publish/:./stablish