diff --git a/.gitea/workflows/tag.yaml b/.gitea/workflows/tag.yaml new file mode 100644 index 0000000..ceead38 --- /dev/null +++ b/.gitea/workflows/tag.yaml @@ -0,0 +1,65 @@ +name: Tag Release + +on: + push: + tags: + - 'v*' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd3143118844c72031235010 # v6 + - name: Build image + run: docker build -t ci-image:${{ github.sha }} . + - name: Save image + run: docker save ci-image:${{ github.sha }} > image.tar + - name: Upload artifact + uses: ChristopherHX/gitea-upload-artifact@62ac910c5d3dfa85c7cb2df15afe2e342b2407c2 # main + with: + name: docker-image + path: image.tar + + test: + runs-on: ubuntu-latest + needs: build + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd3143118844c72031235010 # v6 + - name: Download artifact + uses: ChristopherHX/gitea-download-artifact@75635f32b4c1c41c4b3d64e8f85210112ed4c9c7 # main + with: + name: docker-image + - name: Load image + run: docker load < image.tar + - name: Run tests + run: bash tests/test.sh ci-image:${{ github.sha }} + + push: + runs-on: ubuntu-latest + needs: test + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd3143118844c72031235010 # v6 + with: + fetch-depth: 0 + - name: Download artifact + uses: ChristopherHX/gitea-download-artifact@75635f32b4c1c41c4b3d64e8f85210112ed4c9c7 # main + with: + name: docker-image + - name: Load image + run: docker load < image.tar + - name: Login to Docker Hub + uses: docker/login-action@e92390c5fb421da1463c202d90fedabe47eede95 # v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Extract tag name + run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV + - name: Tag and push with version + run: | + docker tag ci-image:${{ github.sha }} jcabillot/crond:${{ env.TAG }} + docker tag ci-image:${{ github.sha }} jcabillot/crond:latest + docker push jcabillot/crond:${{ env.TAG }} + docker push jcabillot/crond:latest