fuck #269
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Docker | |
on: | |
push: | |
branches: [ "main" ] | |
# Publish semver tags as releases. | |
tags: [ 'v*.*.*' ] | |
pull_request: | |
branches: [ "main" ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
env: | |
EARTHLY_TOKEN: ${{ secrets.EARTHLY_TOKEN }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- uses: earthly/actions-setup@v1 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
version: "latest" # or pin to an specific version, e.g. "0.8.1" | |
- name: Tailscale | |
uses: tailscale/github-action@v2 | |
with: | |
oauth-client-id: ${{ secrets.TAILSCALE_CLIENT_ID }} | |
oauth-secret: ${{ secrets.TAILSCALE_CLIENT_SECRET }} | |
tags: tag:ci | |
- name: Log into registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push Docker image | |
if: github.event_name != 'pull_request' | |
id: build-and-push | |
run: | | |
earthly --org me-2625 --sat alpha --ci --push +all | |
- name: Build Docker image | |
if: github.event_name == 'pull_request' | |
id: build | |
run: | | |
earthly --org me-2625 --sat alpha --ci +all | |
deploy: | |
name: "Deploy xesite" | |
needs: build | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
if: github.ref == 'refs/heads/main' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: azure/setup-kubectl@v4 | |
- name: Save Civo kubeconfig | |
run: | | |
curl -sL https://civo.com/get | sh | |
civo apikey add default $CIVO_TOKEN | |
civo apikey current default | |
civo kubernetes config --region phx1 aeacus --save --switch | |
env: | |
CIVO_TOKEN: ${{ secrets.CIVO_TOKEN }} | |
- uses: dorny/paths-filter@v3 | |
id: changes | |
with: | |
filters: | | |
src: | |
- 'cmd/**/*.go' | |
- 'internal/**/*.go' | |
- 'pb/*' | |
- 'pb/**/*' | |
- 'go.mod' | |
- 'go.sum' | |
- 'Earthfile' | |
- 'manifest/**/*.yaml' | |
- name: "Deploy" | |
if: steps.changes.outputs.src == 'true' | |
run: | | |
kubectl apply -k manifest | |
kubectl rollout restart -n default deploy/xesite |