|
|
@@ -1,107 +0,0 @@
|
|
|
-on:
|
|
|
- workflow_run:
|
|
|
- workflows: ["Deploy Porter to Internal Tooling"]
|
|
|
- branches: [master]
|
|
|
- types:
|
|
|
- - completed
|
|
|
-name: Release dev cli and run integration tests
|
|
|
-jobs:
|
|
|
- build-linux:
|
|
|
- name: Build Linux binaries
|
|
|
- runs-on: ubuntu-latest
|
|
|
- if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
|
|
- steps:
|
|
|
- - name: Checkout code
|
|
|
- uses: actions/checkout@v3
|
|
|
- - name: Set up Go
|
|
|
- uses: actions/setup-go@v4
|
|
|
- with:
|
|
|
- cache: false
|
|
|
- go-version: '1.20.5'
|
|
|
- go-version-file: go.mod
|
|
|
- - name: Build Linux binaries
|
|
|
- run: |
|
|
|
- go build -ldflags="-w -s -X 'github.com/porter-dev/porter/cli/cmd/config.Version=dev_${{ github.sha }}' -X 'github.com/porter-dev/porter/cli/cmd/errors.SentryDSN=${{secrets.SENTRY_DSN}}'" -a -tags cli -o ./porter ./cli &
|
|
|
- wait
|
|
|
- env:
|
|
|
- GOOS: linux
|
|
|
- GOARCH: amd64
|
|
|
- CGO_ENABLED: 0
|
|
|
- - name: Zip Linux binaries
|
|
|
- run: |
|
|
|
- mkdir -p ./release/linux
|
|
|
- zip --junk-paths ./release/linux/porter_dev_${{ github.sha }}_Linux_x86_64.zip ./porter
|
|
|
- - name: Upload binaries
|
|
|
- uses: actions/upload-artifact@v3
|
|
|
- with:
|
|
|
- path: ./release/linux
|
|
|
- name: linux-binaries
|
|
|
- retention-days: 1
|
|
|
- release:
|
|
|
- name: Zip binaries, create release and upload assets
|
|
|
- runs-on: ubuntu-latest
|
|
|
- needs:
|
|
|
- - build-linux
|
|
|
- steps:
|
|
|
- - name: Download binaries
|
|
|
- uses: actions/download-artifact@v3
|
|
|
- with:
|
|
|
- name: linux-binaries
|
|
|
- path: release/linux
|
|
|
- - name: Create Release
|
|
|
- id: create_release
|
|
|
- uses: softprops/action-gh-release@v1
|
|
|
- with:
|
|
|
- tag_name: dev_${{ github.sha }}
|
|
|
- name: Release dev cli for ${{ github.sha }}
|
|
|
- token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
- draft: false
|
|
|
- prerelease: true
|
|
|
- - name: Upload Linux CLI Release Asset
|
|
|
- id: upload-linux-cli-release-asset
|
|
|
- uses: actions/upload-release-asset@v1
|
|
|
- env:
|
|
|
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
- GITHUB_TAG: dev_${{ github.sha }}
|
|
|
- with:
|
|
|
- upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
|
- asset_path: ./release/linux/porter_dev_${{ github.sha }}_Linux_x86_64.zip
|
|
|
- asset_name: porter_dev_${{ github.sha }}_Linux_x86_64.zip
|
|
|
- asset_content_type: application/zip
|
|
|
- build-push-docker-cli:
|
|
|
- name: Build a new porter-cli docker image and push to dev tag
|
|
|
- runs-on: ubuntu-latest
|
|
|
- needs: release
|
|
|
- steps:
|
|
|
- - name: Checkout
|
|
|
- uses: actions/checkout@v3
|
|
|
- - name: Login to GHCR
|
|
|
- id: login-ghcr
|
|
|
- run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
|
|
|
- - name: Build
|
|
|
- run: |
|
|
|
- docker build ./services/porter_cli_container \
|
|
|
- -t ghcr.io/porter-dev/porter/porter-cli:dev \
|
|
|
- -f ./services/porter_cli_container/Dockerfile \
|
|
|
- --build-arg VERSION=dev \
|
|
|
- --build-arg SENTRY_DSN=${{secrets.SENTRY_DSN}}
|
|
|
- - name: Push to GHCR
|
|
|
- run: |
|
|
|
- docker tag ghcr.io/porter-dev/porter/porter-cli:dev ghcr.io/porter-dev/porter/porter-cli:dev
|
|
|
- docker push ghcr.io/porter-dev/porter/porter-cli:dev
|
|
|
- run-integration-tests:
|
|
|
- name: run integration tests to test new build
|
|
|
- runs-on: ubuntu-latest
|
|
|
- needs: build-push-docker-cli
|
|
|
- steps:
|
|
|
- - name: Porter app run
|
|
|
- uses: porter-dev/porter-cli-action@v0.1.0
|
|
|
- with:
|
|
|
- command: app run app-integration-tests --job trigger
|
|
|
- env:
|
|
|
- PORTER_CLUSTER: "142"
|
|
|
- PORTER_HOST: https://dashboard.internal-tools.porter.run
|
|
|
- PORTER_PROJECT: "301"
|
|
|
- PORTER_TOKEN: ${{ secrets.APP_INTEGRATION_PROJECT_TOKEN }}
|
|
|
- PORTER_SERVICE: porter
|
|
|
- PORTER_COMMIT: ${{ github.sha }}
|