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