Files
go-sensors/.github/workflows/CI.yml

148 lines
5.1 KiB
YAML

name: Build and Push Docker Image
on:
push:
branches:
- develop
paths-ignore:
- 'README.md'
pull_request:
branches:
- develop
paths-ignore:
- 'README.md'
workflow_dispatch:
branches:
- develop
paths-ignore:
- 'README.md'
jobs:
testing:
runs-on: ubuntu-latest
strategy:
matrix:
go-version:
- 1.24.x
os:
- ubuntu-latest
steps:
- name: Install libsensors-dev
run: apt update && apt install -y libsensors-dev
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- uses: actions/checkout@v4
- run: |
go get -u .
go test ./.
build-and-push:
runs-on: ubuntu-latest
needs: [ testing ]
steps:
- name: Extract Version
id: version_step
run: |
echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT
echo REPO_VERSION=${GITHUB_REF_NAME#v} >> $GITHUB_OUTPUT
echo RELEASE_DATE=$(date --rfc-3339=date) >> ${GITHUB_ENV}
echo COMMIT_SHA_SHORT=$(echo ${{ github.sha }} | cut -c1-10) >> $GITHUB_OUTPUT
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- name: Dump job context
env:
JOB_CONTEXT: ${{ toJson(job) }}
run: echo "$JOB_CONTEXT"
- name: Dump steps context
env:
STEPS_CONTEXT: ${{ toJson(steps) }}
run: echo "$STEPS_CONTEXT"
# echo "##[set-output name=version;]VERSION=${GITHUB_REF#$"refs/tags/v"}"
# echo "##[set-output name=version_tag;]$GITHUB_REPOSITORY:${GITHUB_REF#$"refs/tags/v"}"
# echo "##[set-output name=latest_tag;]$GITHUB_REPOSITORY:latest"
# - name: Print Version
# run: |
# echo ${{steps.version_step.outputs.version_tag}}
# echo ${{steps.version_step.outputs.latest_tag}}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v3
with:
platforms: |
linux/amd64
- name: Login to DockerHub
uses: docker/login-action@v3
with:
registry: docker.savin.nyc
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# - name: PrepareReg Names
# id: read-docker-image-identifiers
# run: |
# echo VERSION_TAG=$(echo ${{ steps.version_step.outputs.version_tag }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV
# echo LASTEST_TAG=$(echo ${{ steps.version_step.outputs.latest_tag }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV
- name: Build and Push
id: docker_build
uses: docker/build-push-action@v6
with:
# context: .
# file: ./Dockerfile
platforms: |
linux/amd64
push: true
tags: |
docker.savin.nyc/${{ github.event.repository.name }}:nightly
docker.savin.nyc/${{ github.event.repository.name }}:${{ steps.version_step.outputs.COMMIT_SHA_SHORT }}
# ${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ env.DOCKER_LATEST }}
# latest
# build-args: |
# docker.savin.nyc/${{ github.event.repository.name }}:latest
# build-args: |
# ${{steps.version_step.outputs.version}}
# docker.savin.nyc/${{ github.event.repository.name }}:${{ env.RELEASE_VERSION }}
# tags: |
# ${{env.VERSION_TAG}}
# ${{env.LASTEST_TAG}}
# - name: Auto Execute a Workflow
# run: |
# echo "URL: http://10.10.11.26:8090/api/v1/repos/${{ github.event.repository.owner.login }}/${{ github.event.repository.name }}/actions/workflows/CD.yml/dispatches"
# curl -X 'POST' \
# 'http://10.10.11.26:8090/api/v1/repos/${{ github.event.repository.owner.login }}/${{ github.event.repository.name }}/actions/workflows/CD.yml/dispatches' \
# -H 'Accept: application/json' \
# -H 'Content-Type: application/json' \
# -H 'Authorization: Basic ${{ secrets.AUTH_BASIC }}' \
# -H 'Authorization: token ${{ secrets.GHA_TOKEN }}' \
# -d '{"ref":"${{ github.ref }}","inputs":{"version":"${{ steps.version_step.outputs.COMMIT_SHA_SHORT }}","env":"${{ github.ref_name}}"}}'
# shell: bash
# with:
# debug: true
# - name: Auto Deploy (Dev)
## if: ${{ contains(github.ref, 'develop') and env.AUTO_DEPLOY_DEV == 'true' }}
# id: auto-deploy-dev
# uses: https://git.savin.nyc/gh-actions/auto-exec-workflow@v1
# with:
# GITEA_TOKEN: ${{ secrets.GHA_TOKEN }}
# Version: ${{ steps.version.output.updated-version }}
- name: Output Summary
id: output-summary
shell: bash
run: |
echo "CI pipeline has been compiled for ${{ github.repository }} with a new version ${{ steps.vars.outputs.COMMIT_SHORT_SHA }}" >> $GITHUB_STEP_SUMMARY