| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- "on":
- push:
- tags:
- - production
- name: Deploy Porter to Production
- jobs:
- build-go:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v3
- - name: Setup Go Cache
- uses: actions/cache@v3
- with:
- path: |
- ~/.cache/go-build
- ~/go/pkg/mod
- key: porter-go-${{ hashFiles('**/go.sum') }}
- restore-keys: porter-go-`
- - name: Setup Go
- uses: actions/setup-go@v4
- with:
- go-version-file: go.mod
- cache: false
- go-version: '1.20.5'
- - name: Download Go Modules
- run: go mod download
- - name: Build Server Binary
- run: go build -ldflags="-w -s -X 'main.Version=production'" -tags ee -o ./bin/app ./cmd/app
- - name: Build Migration Binary
- run: go build -ldflags '-w -s' -tags ee -o ./bin/migrate ./cmd/migrate
- - name: Compress binaries
- run: |
- upx bin/* --best --lzma
- - name: Store Binaries
- uses: actions/upload-artifact@v3
- with:
- name: go-binaries
- path: bin/
- retention-days: 1
- build-npm:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v3
- - name: Setup Node
- uses: actions/setup-node@v3
- with:
- node-version: 16
- - name: Install NPM Dependencies
- run: |
- cd dashboard
- npm i --legacy-peer-deps
- - name: Run NPM Build
- run: |
- cd dashboard
- npm run build
- - name: Store NPM Static Files
- uses: actions/upload-artifact@v3
- with:
- name: npm-static-files
- path: dashboard/build/
- retention-days: 1
- porter-deploy:
- runs-on: ubuntu-latest
- needs: [build-go, build-npm]
- steps:
- - name: Checkout code
- uses: actions/checkout@v3
- - name: Get Go Binaries
- uses: actions/download-artifact@v3
- with:
- name: go-binaries
- path: bin/
- - name: Get NPM static files
- uses: actions/download-artifact@v3
- with:
- name: npm-static-files
- path: build/
- - name: Set Github tag
- id: vars
- run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- - name: Update Porter API
- timeout-minutes: 20
- uses: porter-dev/porter-update-action@v0.1.0
- with:
- app: porter-ui
- cluster: "9"
- host: https://dashboard.internal-tools.porter.run
- namespace: default
- project: "5"
- tag: ${{ steps.vars.outputs.sha_short }}
- token: ${{ secrets.PORTER_TOKEN_5 }}
- - name: Update Porter Auth
- timeout-minutes: 20
- uses: porter-dev/porter-update-config-action@v0.1.0
- with:
- app: porter-auth
- cluster: "9"
- host: https://dashboard.internal-tools.porter.run
- namespace: default
- project: "5"
- tag: ${{ steps.vars.outputs.sha_short }}
- token: ${{ secrets.PORTER_TOKEN_5 }}
|