88 lines
3.3 KiB
YAML
88 lines
3.3 KiB
YAML
# 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: yKicchan/generate-directory-listing-action@v1
|
|
with: {target: ., ignore: "**/index.html", override: 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
|