github.com/siglens/siglens@v0.0.0-20240328180423-f7ce9ae441ed/.github/workflows/publish-prod-images.yml (about)

     1  name: siglens-docker-release
     2  on:
     3    push:
     4      branches:
     5        - 'main'
     6  jobs:
     7    siglens-docker:
     8      runs-on: ubuntu-latest
     9      environment: build-environment
    10      permissions:
    11          id-token: write
    12          contents: read
    13      steps:
    14        -
    15          name: Checkout
    16          uses: actions/checkout@v3
    17        - 
    18          uses: satackey/action-docker-layer-caching@v0.0.11
    19          # Ignore the failure of a step and avoid terminating the job.
    20          continue-on-error: true
    21        - name: Login to Docker Hub
    22          uses: docker/login-action@v1
    23          with:
    24              username: ${{ secrets.DOCKERHUB_USERNAME }}
    25              password: ${{ secrets.DOCKERHUB_TOKEN }}
    26        - 
    27          name: Get Version number
    28          id: get-version
    29          run: |
    30              TAG=$(sed -n 's/const SigLensVersion = "\(.*\)"/\1/p' pkg/config/version.go)
    31              echo "TAG=$TAG" >> $GITHUB_ENV
    32              cat $GITHUB_ENV
    33        - name: Extract metadata (tags, labels) for Docker
    34          id: meta
    35          uses: docker/metadata-action@v5
    36          with:
    37              images: siglens/siglens
    38              tags: |
    39                type=raw,value=${{ env.TAG }}
    40                type=raw,value=latest
    41        -
    42          name: Set up QEMU
    43          uses: docker/setup-qemu-action@v2
    44        - 
    45          name: Set up Docker Buildx
    46          uses: docker/setup-buildx-action@v2
    47        -
    48          name: Build and push
    49          uses: docker/build-push-action@v3
    50          with:
    51              context: .
    52              file: Dockerfile
    53              push: true
    54              platforms: linux/amd64,linux/arm64
    55              tags: ${{ steps.meta.outputs.tags }}
    56  
    57    sigscalr-release-assets:
    58        runs-on: ubuntu-latest
    59        environment: build-environment
    60        permissions:
    61          id-token: write
    62          contents: read
    63        steps:
    64          -
    65            name: Checkout
    66            uses: actions/checkout@v3
    67          - 
    68            name: Setup go
    69            uses: actions/setup-go@v3
    70            with:
    71              go-version: '>=1.18.0'
    72          - 
    73            name: version
    74            run: |
    75              RELEASE_TAG=$(sed -n 's/const SigLensVersion = "\(.*\)"/\1/p' pkg/config/version.go)
    76              echo "RELEASE_TAG=$RELEASE_TAG" >> $GITHUB_ENV
    77              cat $GITHUB_ENV
    78          - name: release
    79            uses: actions/create-release@v1
    80            id: create_release
    81            with:
    82                draft: false
    83                prerelease: false
    84                release_name: ${{ env.RELEASE_TAG }}
    85                tag_name: ${{ env.RELEASE_TAG }}
    86            env:
    87              GITHUB_TOKEN: ${{ secrets.SL_GITHUB_TOKEN }}
    88          
    89          - name: Upload Release Asset - server.yaml
    90            id: upload-release-asset-serverConfig
    91            uses: actions/upload-release-asset@v1
    92            env:
    93              GITHUB_TOKEN: ${{ secrets.SL_GITHUB_TOKEN }}
    94            with:
    95              upload_url: ${{ steps.create_release.outputs.upload_url }} 
    96              asset_path: server.yaml
    97              asset_name: server.yaml
    98              asset_content_type: application/octet-stream
    99          - name: Upload Release Asset - playground.yaml
   100            id: upload-release-asset-playgroundConfig
   101            uses: actions/upload-release-asset@v1
   102            env:
   103              GITHUB_TOKEN: ${{ secrets.SL_GITHUB_TOKEN }}
   104            with:
   105              upload_url: ${{ steps.create_release.outputs.upload_url }} 
   106              asset_path: playground.yaml
   107              asset_name: playground.yaml
   108              asset_content_type: application/octet-stream
   109          - name: Upload Release Asset - Install using docker script
   110            id: upload-release-asset-InstallDockerScripts
   111            uses: actions/upload-release-asset@v1
   112            env:
   113              GITHUB_TOKEN: ${{ secrets.SL_GITHUB_TOKEN }}
   114            with:
   115              upload_url: ${{ steps.create_release.outputs.upload_url }} 
   116              asset_path: install_with_docker.sh
   117              asset_name: install_with_docker.sh
   118              asset_content_type: application/octet-stream
   119          - name: Upload Release Asset - Install using Docker/Podman script
   120            id: upload-release-asset-InstallDockerPodmanScripts
   121            uses: actions/upload-release-asset@v1
   122            env:
   123              GITHUB_TOKEN: ${{ secrets.SL_GITHUB_TOKEN }}
   124            with:
   125              upload_url: ${{ steps.create_release.outputs.upload_url }} 
   126              asset_path: install.sh
   127              asset_name: install.sh
   128              asset_content_type: application/octet-stream
   129          - name: Upload Release Asset - docker-compose.yml
   130            id: upload-release-asset-DockerCompose
   131            uses: actions/upload-release-asset@v1
   132            env:
   133              GITHUB_TOKEN: ${{ secrets.SL_GITHUB_TOKEN }}
   134            with:
   135              upload_url: ${{ steps.create_release.outputs.upload_url }} 
   136              asset_path: docker-compose.yml
   137              asset_name: docker-compose.yml
   138              asset_content_type: application/octet-stream
   139          - name: Upload Release Asset - ssmetrics-otel-collector-config.yaml
   140            id: upload-release-asset-SigLensMetricsOtelCollector
   141            uses: actions/upload-release-asset@v1
   142            env:
   143              GITHUB_TOKEN: ${{ secrets.SL_GITHUB_TOKEN }}
   144            with:
   145              upload_url: ${{ steps.create_release.outputs.upload_url }} 
   146              asset_path: ssmetrics-otel-collector-config.yaml
   147              asset_name: ssmetrics-otel-collector-config.yaml
   148              asset_content_type: application/octet-stream
   149          - name: Upload Release Asset - podman-compose.yml
   150            id: upload-release-asset-PodmanCompose
   151            uses: actions/upload-release-asset@v1
   152            env:
   153              GITHUB_TOKEN: ${{ secrets.SL_GITHUB_TOKEN }}
   154            with:
   155              upload_url: ${{ steps.create_release.outputs.upload_url }} 
   156              asset_path: podman-compose.yml
   157              asset_name: podman-compose.yml
   158              asset_content_type: application/octet-stream
   159          - name: Upload Release Asset - podman-network_siglens.conflist
   160            id: upload-release-asset-Podman-Network_SigLens
   161            uses: actions/upload-release-asset@v1
   162            env:
   163              GITHUB_TOKEN: ${{ secrets.SL_GITHUB_TOKEN }}
   164            with:
   165              upload_url: ${{ steps.create_release.outputs.upload_url }} 
   166              asset_path: podman-network_siglens.conflist
   167              asset_name: podman-network_siglens.conflist
   168              asset_content_type: application/octet-stream
   169