github.com/cozy/cozy-stack@v0.0.0-20240327093429-939e4a21320e/.github/workflows/release.yml (about)

     1  name: Create releases
     2  on:
     3    push:
     4      tags:
     5        - "*.*.*" # Matching a version number like 1.4.19
     6  jobs:
     7    create_release:
     8      runs-on: ubuntu-22.04
     9      steps:
    10        - name: Checkout code
    11          uses: actions/checkout@v4
    12        - name: Create the release
    13          env:
    14            GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    15          run: |
    16            tag_name="${GITHUB_REF##*/}"
    17            gh release create "$tag_name" --target "$GITHUB_SHA"  --title "$tag_name" --notes "Release $tag_name"
    18    publish_binaries:
    19      runs-on: ubuntu-22.04
    20      needs: create_release
    21      steps:
    22        - name: Install Go
    23          uses: actions/setup-go@v5
    24          with:
    25            go-version: "1.22.x"
    26        - name: Checkout code
    27          uses: actions/checkout@v4
    28        - name: Build the binaries
    29          run: |
    30            GOOS=linux   GOARCH=amd64 ./scripts/build.sh release
    31            GOOS=linux   GOARCH=arm   ./scripts/build.sh release
    32            GOOS=freebsd GOARCH=amd64 ./scripts/build.sh release
    33        - name: Upload binaries to release
    34          env:
    35            GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    36          run: |
    37            tag_name="${GITHUB_REF##*/}"
    38            gh release upload "$tag_name" cozy-stack-*
    39    publish_cozy-stack_image:
    40      runs-on: ubuntu-22.04
    41      needs: create_release
    42      steps:
    43        - name: Checkout code
    44          uses: actions/checkout@v4
    45        - name: Login to Docker Hub
    46          uses: docker/login-action@v3
    47          with:
    48            username: ${{ secrets.DOCKERHUB_USERNAME }}
    49            password: ${{ secrets.DOCKERHUB_SECRET }}
    50        - name: Build and publish the cozy-stack image
    51          run: scripts/docker/production/release.sh
    52    publish_cozy-app-dev_image:
    53      runs-on: ubuntu-22.04
    54      needs: create_release
    55      steps:
    56        - name: Checkout code
    57          uses: actions/checkout@v4
    58        - name: Login to Docker Hub
    59          uses: docker/login-action@v3
    60          with:
    61            username: ${{ secrets.DOCKERHUB_USERNAME }}
    62            password: ${{ secrets.DOCKERHUB_SECRET }}
    63        - name: Build and publish the cozy-app-dev image
    64          run: scripts/docker/cozy-app-dev/release.sh
    65    publish_deb_packages:
    66      strategy:
    67        matrix:
    68          os:
    69            [
    70              "debian:10",
    71              "debian:11",
    72              "debian:12",
    73              "ubuntu:20.04",
    74              "ubuntu:22.04",
    75            ]
    76      runs-on: ubuntu-latest
    77      needs: create_release
    78      steps:
    79        - name: Checkout code
    80          uses: actions/checkout@v4
    81        - name: Build package
    82          uses: addnab/docker-run-action@v3
    83          with:
    84            image: ${{ matrix.os }}
    85            options: -v ${{ github.workspace }}:/build -e GOVERSION=1.22.0
    86            run: |
    87              echo "[safe]" > /root/.gitconfig
    88              echo "        directory = /build" >> /root/.gitconfig
    89              cd /build
    90              scripts/packaging/installrequirements.sh
    91              scripts/packaging/buildpackage.sh
    92        - name: Upload package to release
    93          env:
    94            GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    95          run: |
    96            tag_name="${GITHUB_REF##*/}"
    97            gh release upload "$tag_name" packages/*.deb