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"