# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json # docs: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions name: 🚀 Release on: release: {types: [published]} workflow_dispatch: {} jobs: build-docker-image: name: Build the docker image runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_LOGIN }} password: ${{ secrets.DOCKER_PASSWORD }} - uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - {uses: gacts/github-slug@v1, id: slug} - uses: docker/setup-qemu-action@v3 - uses: docker/setup-buildx-action@v3 - uses: docker/build-push-action@v6 with: context: . push: true platforms: linux/amd64,linux/arm64 tags: | ghcr.io/${{ github.actor }}/3proxy:latest ghcr.io/${{ github.actor }}/3proxy:${{ steps.slug.outputs.version }} ghcr.io/${{ github.actor }}/3proxy:${{ steps.slug.outputs.version-major }}.${{ steps.slug.outputs.version-minor }} ghcr.io/${{ github.actor }}/3proxy:${{ steps.slug.outputs.version-major }} docker.io/tarampampam/3proxy:latest docker.io/tarampampam/3proxy:${{ steps.slug.outputs.version }} docker.io/tarampampam/3proxy:${{ steps.slug.outputs.version-major }}.${{ steps.slug.outputs.version-minor }} docker.io/tarampampam/3proxy:${{ steps.slug.outputs.version-major }} helm-pack: name: Pack the Helm chart runs-on: ubuntu-latest needs: [build-docker-image] defaults: {run: {working-directory: ./deployments/helm}} steps: - uses: actions/checkout@v4 - uses: azure/setup-helm@v4 - {uses: gacts/github-slug@v1, id: slug} - run: | helm package \ --app-version "${{ steps.slug.outputs.version }}" \ --version "${{ steps.slug.outputs.version }}" . - uses: actions/upload-artifact@v4 with: name: helm-chart path: ./deployments/helm/*.tgz if-no-files-found: error retention-days: 1 helm-publish: name: Put the Helm chart to the GitHub pages branch runs-on: ubuntu-latest needs: [helm-pack] steps: - {uses: actions/checkout@v4, with: {ref: gh-pages}} - uses: azure/setup-helm@v4 - uses: actions/download-artifact@v4 with: {name: helm-chart, path: ./helm-charts} - name: Update the index.yaml run: | helm repo index \ --url https://${{ github.actor }}.github.io/${{ github.event.repository.name }}/helm-charts/ \ --merge \ ./helm-charts/index.yaml \ ./helm-charts - {uses: gacts/directory-listing@v1, with: {overwrite: true}} - name: Commit and push the changes run: | git config user.name "${{ github.actor }}" git config user.email "${{ github.actor }}@users.noreply.github.com" git add . git commit -m "Helm chart release" git push origin gh-pages