on: push: tags: - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 name: Create release w/ binaries and docker image jobs: docker-build-push: runs-on: ubuntu-latest steps: - name: Get tag name id: tag_name run: | tag=${GITHUB_TAG/refs\/tags\//} echo ::set-output name=tag::$tag env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@v2.3.4 - name: Setup docker uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Write Dashboard Environment Variables run: | cat >./dashboard/.env <./dashboard/.env < ./porter.gon.json - name: Create a portersvr.gon.json file run: | echo " { \"source\": [\"./portersvr\"], \"bundle_id\": \"cli.portersvr\", \"apple_id\": { \"password\": \"@env:AC_PASSWORD\" }, \"sign\": { \"application_identity\": \"${{ secrets.AC_APPLICATION_IDENTITY }}\" }, \"zip\": { \"output_path\": \"./release/darwin/portersvr_${{steps.tag_name.outputs.tag}}_Darwin_x86_64.zip\" } } " > ./portersvr.gon.json - name: Create a docker-credential-porter.gon.json file run: | echo " { \"source\": [\"./docker-credential-porter\"], \"bundle_id\": \"cli.docker-credential-porter\", \"apple_id\": { \"password\": \"@env:AC_PASSWORD\" }, \"sign\": { \"application_identity\": \"${{ secrets.AC_APPLICATION_IDENTITY }}\" }, \"zip\": { \"output_path\": \"./release/darwin/docker-credential-porter_${{steps.tag_name.outputs.tag}}_Darwin_x86_64.zip\" } } " > ./docker-credential-porter.gon.json - name: Sign the mac binaries with Gon env: AC_USERNAME: ${{ secrets.AC_USERNAME }} AC_PASSWORD: ${{ secrets.AC_PASSWORD }} run: | gon ./porter.gon.json & gon ./portersvr.gon.json & gon ./docker-credential-porter.gon.json & wait - name: Upload binaries uses: actions/upload-artifact@v2 with: path: ./release name: binaries retention-days: 1 release: name: Zip binaries, create release and upload assets runs-on: ubuntu-latest needs: notarize steps: - name: Get tag name id: tag_name run: | tag=${GITHUB_TAG/refs\/tags\//} echo ::set-output name=tag::$tag env: GITHUB_TAG: ${{ github.ref }} - name: Download binaries uses: actions/download-artifact@v2 with: name: binaries path: release/ - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: Release ${{ github.ref }} 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: ${{ github.ref }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./release/linux/porter_${{steps.tag_name.outputs.tag}}_Linux_x86_64.zip asset_name: porter_${{steps.tag_name.outputs.tag}}_Linux_x86_64.zip asset_content_type: application/zip - name: Upload Linux Server Release Asset id: upload-linux-server-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TAG: ${{ github.ref }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./release/linux/portersvr_${{steps.tag_name.outputs.tag}}_Linux_x86_64.zip asset_name: portersvr_${{steps.tag_name.outputs.tag}}_Linux_x86_64.zip asset_content_type: application/zip - name: Upload Linux Docker Credential Release Asset id: upload-linux-docker-cred-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TAG: ${{ github.ref }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./release/linux/docker-credential-porter_${{steps.tag_name.outputs.tag}}_Linux_x86_64.zip asset_name: docker-credential-porter_${{steps.tag_name.outputs.tag}}_Linux_x86_64.zip asset_content_type: application/zip - name: Upload Darwin CLI Release Asset id: upload-darwin-cli-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TAG: ${{ github.ref }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./release/darwin/porter_${{steps.tag_name.outputs.tag}}_Darwin_x86_64.zip asset_name: porter_${{steps.tag_name.outputs.tag}}_Darwin_x86_64.zip asset_content_type: application/zip - name: Upload Darwin Server Release Asset id: upload-darwin-server-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TAG: ${{ github.ref }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./release/darwin/portersvr_${{steps.tag_name.outputs.tag}}_Darwin_x86_64.zip asset_name: portersvr_${{steps.tag_name.outputs.tag}}_Darwin_x86_64.zip asset_content_type: application/zip - name: Upload Darwin Docker Credential Release Asset id: upload-darwin-docker-cred-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TAG: ${{ github.ref }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./release/darwin/docker-credential-porter_${{steps.tag_name.outputs.tag}}_Darwin_x86_64.zip asset_name: docker-credential-porter_${{steps.tag_name.outputs.tag}}_Darwin_x86_64.zip asset_content_type: application/zip - name: Upload Windows CLI Release Asset id: upload-windows-cli-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TAG: ${{ github.ref }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./release/windows/porter_${{steps.tag_name.outputs.tag}}_Windows_x86_64.zip asset_name: porter_${{steps.tag_name.outputs.tag}}_Windows_x86_64.zip asset_content_type: application/zip - name: Upload Windows Server Release Asset id: upload-windows-server-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TAG: ${{ github.ref }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./release/windows/portersvr_${{steps.tag_name.outputs.tag}}_Windows_x86_64.zip asset_name: portersvr_${{steps.tag_name.outputs.tag}}_Windows_x86_64.zip asset_content_type: application/zip - name: Upload Windows Docker Credential Release Asset id: upload-windows-docker-cred-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TAG: ${{ github.ref }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./release/windows/docker-credential-porter_${{steps.tag_name.outputs.tag}}_Windows_x86_64.zip asset_name: docker-credential-porter_${{steps.tag_name.outputs.tag}}_Windows_x86_64.zip asset_content_type: application/zip - name: Upload Static Release Asset id: upload-static-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TAG: ${{ github.ref }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./release/static/static_${{steps.tag_name.outputs.tag}}.zip asset_name: static_${{steps.tag_name.outputs.tag}}.zip asset_content_type: application/zip