-
Notifications
You must be signed in to change notification settings - Fork 2
65 lines (52 loc) · 3.14 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
name: MilkBasket Deploy
env:
project: MilkBasket
server: https://cyberboy.octopus.app/
version: $(date +%Y.%m.%d).i
on:
push:
branches: master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Install Octopus Command-Line Interface
run: sudo apt update && sudo apt install --no-install-recommends gnupg curl ca-certificates jq apt-transport-https &&
curl -sSfL https://apt.octopus.com/public.key | sudo apt-key add - &&
sudo sh -c "echo deb https://apt.octopus.com/ stable main > /etc/apt/sources.list.d/octopus.com.list" &&
sudo apt update && sudo apt install octopuscli
- name: Create Octopus release
run: |
octo create-release --server ${{ env.server }} --apiKey ${{ secrets.OCTOPUS_API_KEY }} --project ${{ env.project }} --version ${{ env.version }}
- name: Deploy to environment
run: |
octo deploy-release --server ${{ env.server }} --apiKey ${{ secrets.OCTOPUS_API_KEY }} --project ${{ env.project }} --version=latest --deployTo Production
- name: Wait 60 Sec to complete the deploy
run: |
sleep 60
- name: Get latest release version from Octopus
id: octopus
run: |
release_metadata=$(octo list-latestDeployments --server=${{ env.server }} --project="MilkBasket" --environment="Production" --apikey=${{ secrets.OCTOPUS_API_KEY }} --space="milk-space" --outputFormat=json | tail -n +2 | jq -r '.[0].Version')
echo "::set-output name=release-version::$release_metadata"
release_metadata=$(octo list-latestDeployments --server=${{ env.server }} --project="MilkBasket" --environment="Production" --apikey=${{ secrets.OCTOPUS_API_KEY }} --space="milk-space" --outputFormat=json | tail -n +2 | jq -r '.[0].Assembled')
echo "::set-output name=assembled::$release_metadata"
release_metadata=$(octo list-latestDeployments --server=${{ env.server }} --project="MilkBasket" --environment="Production" --apikey=${{ secrets.OCTOPUS_API_KEY }} --space="milk-space" --outputFormat=json | tail -n +2 | jq -r '.[0].State')
echo "::set-output name=state::$release_metadata"
release_metadata=$(octo list-latestDeployments --server=${{ env.server }} --project="MilkBasket" --environment="Production" --apikey=${{ secrets.OCTOPUS_API_KEY }} --space="milk-space" --outputFormat=json | tail -n +2 | jq -r '.[0].Duration')
echo "::set-output name=duration::$release_metadata"
- name: Create GitHub release
uses: actions/create-release@v1
with:
tag_name: ${{ steps.octopus.outputs.release-version }}
release_name: MilkBasket-${{ steps.octopus.outputs.release-version }}
body: |
Release Info:
MilkBasket Release Version: ${{ steps.octopus.outputs.release-version }}
Assembled: ${{ steps.octopus.outputs.assembled }}
State: ${{ steps.octopus.outputs.state }}
Duration: ${{ steps.octopus.outputs.duration }}
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }}