github.com/cozy/cozy-stack@v0.0.0-20240603063001-31110fa4cae1/.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=linux   GOARCH=arm64 ./scripts/build.sh release
    33            GOOS=freebsd GOARCH=amd64 ./scripts/build.sh release
    34        - name: Upload binaries to release
    35          env:
    36            GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    37          run: |
    38            tag_name="${GITHUB_REF##*/}"
    39            gh release upload "$tag_name" cozy-stack-*
    40    publish_cozy-stack_image:
    41      runs-on: ubuntu-22.04
    42      needs: create_release
    43      steps:
    44        - name: Checkout code
    45          uses: actions/checkout@v4
    46        - name: Login to Docker Hub
    47          uses: docker/login-action@v3
    48          with:
    49            username: ${{ secrets.DOCKERHUB_USERNAME }}
    50            password: ${{ secrets.DOCKERHUB_SECRET }}
    51        - name: Build and publish the cozy-stack image
    52          run: scripts/docker/production/release.sh
    53    publish_cozy-app-dev_image:
    54      runs-on: ubuntu-22.04
    55      needs: create_release
    56      steps:
    57        - name: Checkout code
    58          uses: actions/checkout@v4
    59        - name: Login to Docker Hub
    60          uses: docker/login-action@v3
    61          with:
    62            username: ${{ secrets.DOCKERHUB_USERNAME }}
    63            password: ${{ secrets.DOCKERHUB_SECRET }}
    64        - name: Build and publish the cozy-app-dev image
    65          run: scripts/docker/cozy-app-dev/release.sh
    66    publish_deb_packages:
    67      strategy:
    68        matrix:
    69          os:
    70            [
    71              "debian:10",
    72              "debian:11",
    73              "debian:12",
    74              "ubuntu:20.04",
    75              "ubuntu:22.04",
    76              "ubuntu:24.04",
    77            ]
    78      runs-on: ubuntu-latest
    79      needs: create_release
    80      steps:
    81        - name: Checkout code
    82          uses: actions/checkout@v4
    83        - name: Build package
    84          uses: addnab/docker-run-action@v3
    85          with:
    86            image: ${{ matrix.os }}
    87            options: -v ${{ github.workspace }}:/build -e GOVERSION=1.22.0
    88            run: |
    89              echo "[safe]" > /root/.gitconfig
    90              echo "        directory = /build" >> /root/.gitconfig
    91              cd /build
    92              scripts/packaging/installrequirements.sh
    93              scripts/packaging/buildpackage.sh
    94        - name: Upload package to release
    95          env:
    96            GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    97          run: |
    98            tag_name="${GITHUB_REF##*/}"
    99            gh release upload "$tag_name" packages/*.deb
   100    update_repo:
   101      runs-on: ubuntu-latest
   102      needs: publish_deb_packages
   103      steps:
   104        - name: Update deb repo
   105          env:
   106            JENKINS_AUTH: ${{ secrets.JENKINS_AUTH }}
   107            JENKINS_REPO_PUBLISH_JOB: ${{ secrets.JENKINS_REPO_PUBLISH_JOB }}
   108            JENKINS_REPO_PUBLISH_TOKEN: ${{ secrets.JENKINS_REPO_PUBLISH_TOKEN }}
   109          run: |
   110            curl -fsSL --user ${JENKINS_AUTH} https://ci.cozycloud.cc/job/${JENKINS_REPO_PUBLISH_JOB}/buildWithParameters?token=${JENKINS_REPO_PUBLISH_TOKEN} -d "FORCE=false"